通过Python发布文件内容的发布请求

时间:2015-05-28 16:32:25

标签: python file post cookies http-post

我有一个非常大的POSt数据(超过100 MB)和一个cookie,现在我想通过Python将它发送到服务器,POSt请求在这样的文件中:

 a=true&b=random&c=2222&d=pppp

这是我的以下代码,它只发送Cookie但不发送POST内容。

import requests
import sys
count = len(sys.argv)
if count < 3:
    print 'usage a.py FILE URL LOGFILE'
else:
    url = sys.argv[2]
    data= {'file': open(sys.argv[1], 'rb')}
    cookies = {'session':'testsession'}
    r = requests.get(url, data=data, cookies=cookies)
    f = open(sys.argv[3], 'w')
    f.write(r.text)
    f.close()

代码采用包含POSt数据的File,然后是发送它的URL,然后是存储响应的OUTPUT文件。

  

注意:我不是要上传文件,而是发送文件内的帖子内容。

1 个答案:

答案 0 :(得分:0)

首先你应该使用requests.post。其次,如果您只想在文件中发布数据,则需要读取文件的内容并将其解析为dict,因为这是requests.post期望数据进入的格式。

示例:(注意:只显示相关部分)

import urlparse
import requests
import sys

with open(sys.argv[1], 'rb') as f:
    data = urlparse.parse_qs('&'.join(f.read().splitlines()))

r = requests.post(url, data=data, cookies=cookies)