Heim  >  Fragen und Antworten  >  Hauptteil

Python-Anfragen erhalten Zugriffsdatei-Eingabeaufforderung 500 – Interner Serverfehler

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
淡淡烟草味淡淡烟草味2712 Tage vor942

Antworte allen(3)Ich werde antworten

  • 某草草

    某草草2017-05-18 10:51:32

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

    Antwort
    0
  • 滿天的星座

    滿天的星座2017-05-18 10:51:32

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

    Antwort
    0
  • phpcn_u1582

    phpcn_u15822017-05-18 10:51:32

    下载文件需要用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)

    Antwort
    0
  • StornierenAntwort