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
原来是header的问题,'Referer'加上就好了
全段代码贴上来才好分析,现在看来你需要知道浏览器下载文件那个时刻的所有信息,才能够用python模拟,要么你可以直接在服务器端找到500的原因也可以。
下载文件需要用r.content, 另外post登录成功之后cookie是已经在s里面了,不需要在get的时候用参数传递