如何使用post请求在python中下载文件?

时间:2016-03-02 12:17:49

标签: python

我正在尝试使用python自动从应用程序下载导出。 这是我的代码:

export_url = 'https://....'
payload = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
r = requests.post(export_url, data=payload)
print(r)

响应为200但文件以某种方式丢失 怎么了?

编辑:

这是我的全部代码:

import requests

URL = 'homepage_after_login'
LOGIN_URL = 'loginpage'

session = requests.session()

username = 'uname'
password = 'pass'
loginformtype = "value"
submit = "Sign+in"

login_data = {'username'        : username,
              'password'        : password,
              'login-form-type' : loginformtype,
              'submit'          : submit}

session.post(LOGIN_URL, data=login_data)

req = session.get(URL)

export_url = 'https://....'
payload = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
r = requests.post(export_url, data=payload)
print(r)

可能会忽略登录部分吗?

1 个答案:

答案 0 :(得分:2)

也许你应该看一下documentation.

当您打印r时,您会收到状态代码。 (嗯,不完全是,但打印的数字是状态代码。)

您可能想要使用的是r.text

  

文字

     

响应的内容,以unicode为单位。

     

如果Response.encoding为None,将使用chardet猜测编码。

     

响应内容的编码仅根据HTTP标头确定,遵循RFC 2616到字母。如果可以的话   非HTTP知识的优势,可以更好地猜测   编码时,您应该在访问之前适当地设置r.encoding   这个属性。

r.content

  

内容

     

响应内容,以字节为单位。