使用requests库在Python中发送POST请求
我有一个简单的表单,可以接受文本,并通过POST方法调用一个名为abc.php的PHP文件:
<form method='post' action="abc.php">
<input type="textarea" name="text">
<input type="submit">
</form>
abc.php的内容是:
<?php
$msg=$_POST["text"];
print $msg;
?>
我写了一个Python脚本,使用requests库来发送消息,代码如下:
import requests
keys={'text':'lol rofl'}
r=requests.post("http://127.0.0.1/abc.php/POST",params=keys)
print r.url
print r.text
但是我得到了以下输出(错误信息):
http://localhost/abc.php/POST?text=lol+rofl
<b>notice</b>:undefined index;text in C:/xampp/htdocs/abc.php on line 2
注意:这个表单和abc.php在浏览器中运行时完全正常。
1 个回答
5
正确的参数是 data
:
http://docs.python-requests.org/en/latest/user/quickstart/#more-complicated-post-requests
Typically, you want to send some form-encoded data — much like an HTML form.
To do this, simply pass a dictionary to the data argument.
Your dictionary of data will automatically be form-encoded
when the request is made:
>>> payload = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.post("http://httpbin.org/post", data=payload)