gpt4 book ai didi

python - HTTPS POST 请求 Python,返回 .csv

转载 作者:太空宇宙 更新时间:2023-11-04 06:16:48 24 4
gpt4 key购买 nike

我想向 HTTPS 站点发出发布请求,该站点应使用 .csv 文件进行响应。我有这个 Python 代码:

try:
#conn = httplib.HTTPSConnection(host="www.site.com", port=443)

=> 给出 BadStatusLine: ' ' 错误

    conn = httplib.HTTPConnection("www.site.com");
params = urllib.urlencode({'val1':'123','val2':'abc','val3':'1b3'})
conn.request("POST", "/nps/servlet/exportdatadownload", params)
content = conn.getresponse()
print content.reason, content.status
print content.read()
conn.close()
except:
import sys
print sys.exc_info()[:2]

输出:

Found 302

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>302 Found</TITLE>
</HEAD><BODY>
<H1>Found</H1>
The document has moved <A HREF="https://www.site.com/nps/servlet/exportdatadownload">here</A>.<P>
<HR>
<ADDRESS>Oracle-Application-Server-10g/10.1.3.5.0 Oracle-HTTP-Server Server at mp-www1.mrco.be Port 7778</ADDRESS>
</BODY></HTML>

我做错了什么?如何“捕获”返回的 .csv 文件?我尝试使用 Chrome Extentions 的 POST 请求(Advanced Rest Client,它正在运行......)

最佳答案

带有 302 错误的 HTML 输出是因为您使用 HTTP 而不是 HTTPS 连接到站点,这在您的代码中:

conn = httplib.HTTPConnection("www.site.com");

您这样做可能是因为您的代码的注释部分存在其他错误。

如果我尝试这样做,我会使用 Requests , 非常清楚 documentation .使用请求,代码将类似于:

import requests

url = "https://www.example.com/nps/servlet/exportdatadownload"
payload = { "val1": "123", "val2": "abc", "val3": "1b3" }
r = requests.post(url, data=payload, verify=True)

CSV文件应该在r.content中,可以写入文件。

关于python - HTTPS POST 请求 Python,返回 .csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15057847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com