Python-Anfragen erhalten Zugriffsdatei-Eingabeaufforderung 500 – Interner Serverfehler
淡淡烟草味
淡淡烟草味 2017-05-18 10:49:32
0
3
974
s = requests.Session()
r = s.post('http://x.x.x.x/cgi/login.cgi', data={'name':  'ADMIN', 'pwd': 'ADMIN'},verify=False)
r = s.get(url, cookies=s.cookies,stream=True)
print(r.text)

IP ist die interne IP. Dateien können mit jedem Browser wie IE oder Firefox heruntergeladen werden. Ich verwende nur Anfragen, um auf einen Fehler von 500 zuzugreifen und ihn zu melden. Ich weiß wirklich nicht warum.
Hier ist der Code:

import requests
import ssl
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
ssl._create_default_https_context = ssl._create_unverified_context
s = requests.Session()
requests.packages.urllib3.disable_warnings()
r=s.post('https://172.30.1.141/cgi/login.cgi', data={'name': 'ADMIN', 'pwd': 'ADMIN'},verify=False)

print(r.text)
url='https://172.30.1.141/cgi/url_redirect.cgi?url_name=ikvm&url_type=jwsk'
rr=s.get(url).content
print(rr)

Die folgenden Informationen werden vom Browser gesendet:

GET /cgi/url_redirect.cgi?url_name=ikvm&url_type=jwsk HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
X-HttpWatch-RID: 23897-11061
Referer: http://172.30.1.141/cgi/url_redirect.cgi?url_name=man_ikvm
Accept-Language: zh-CN
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host: 172.30.1.78
Connection: Keep-Alive
Cookie: langSetFlag=0; language=English; SID=ntnfkcvpmqfhmfnt; mainpage=remote; subpage=man_ikvm

Die folgenden Informationen werden von der Webseite zurückgegeben:

HTTP/1.1 200 OK
Content-Length: 2016
Content-Disposition: inline; filename=launch.jnlp
Content-Type: application/x-java-jnlp-file
Date: Wed, 10 May 2017 21:01:00 GMT
淡淡烟草味
淡淡烟草味

Antworte allen(3)
某草草

原来是header的问题,'Referer'加上就好了

滿天的星座

全段代码贴上来才好分析,现在看来你需要知道浏览器下载文件那个时刻的所有信息,才能够用python模拟,要么你可以直接在服务器端找到500的原因也可以。

phpcn_u1582

下载文件需要用r.content, 另外post登录成功之后cookie是已经在s里面了,不需要在get的时候用参数传递

s = requests.Session()
s.post('http://x.x.x.x/cgi/login.cgi', data={'name':  'ADMIN', 'pwd': 'ADMIN'})
r = s.get(url)
with open('文件名', 'wb') as f:
    f.write(r.content)
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage