0

当我尝试从文件中发布数据时

headers = {'content-type': 'text/plain'}
files = {'Content': open(os.getcwd()+'\\1.txt', 'rb')}

contentR = requests.post("http://" + domain +"index.php", params=payload, data=files, headers=headers)

我得到类似 urlencoded 字符串的东西

Content=%3C%3Fphp+echo%28%22Hello+world%22+%29%3B+%3F%3E

代替

<?php echo("Hello world" ); ?>

如何在文本文件中发布数据?

4

1 回答 1

2

如果您仔细阅读文档,您可以使用文件对象:

headers = {'content-type': 'text/plain'}
file = open(os.getcwd()+'\\1.txt', 'rb')

contentR = requests.post("http://" + domain +"index.php", params=payload, data=file, headers=headers)

或者您可以只传递一个带有文件内容的字符串,如下所示:

file_contents = open(os.getcwd() + '\\`.txt', 'rb').read()
contentR = requests.post("http://" + domain +"index.php", params=payload, data=file_contents, headers=headers)

如果你传递一个字典,它总是会被 urlencoded,所以这不是你想要做的。

于 2013-10-08T00:18:56.437 回答