早上好, 一旦我使用了仅提交一个值/参数的Web表单请求。但是现在我必须提交一个具有多个值的Web表单,但不提交,并且print(r.status_code,r.reason)是200,OK。没有任何错误。我已经搜索了很多,但是我不明白这是怎么回事。这是我的代码。
import requests
payload = {'to':'anyemail@xx.com','from':'anyemail@xx.com','message':'sent from python','subject':'sent from python'}
r = requests.post("http://www.website.com/send.php",data=payload)
print('Email sent successfully!')
print(r.status_code, r.reason)
print(r.text)
print(r.content)
网页代码
<!DOCTYPE html>
<html>
<head></head>
<body>
<form method="POST" action="send.php">
<input type="email" name="to">
<input type="email" name="from">
<input type="text" name="message">
<input type="text" name="subject">
<input type="submit" name="send">
</form>
</body>
</html>
答案 0 :(得分:0)
也许尝试设置内容类型:
url = '.....'
payload = {'to':'anyemail@xx.com','from':'anyemail@xx.com','message':'sent from python','subject':'sent from python'}
headers = {'content-type': 'application/x-www-form-urlencoded'}
r = requests.post(url, data=payload, headers=headers)
内容类型定义Web服务器如何解释您的帖子数据。 确保您使用的内容类型正确。
答案 1 :(得分:0)
许多情况下,您希望发送的数据未经格式编码。如果您传递的是字符串而不是字典,则将使用json.dumps(payload)
直接发布该数据import requests,json
payload = {'to':'anyemail@xx.com','from':'anyemail@xx.com','message':'sent from python','subject':'sent from python'}
r = requests.post("http://www.website.com/send.php",data=json.dumps(payload))
print('Email sent successfully!')
print(r.status_code, r.reason)
print(r.text)
print(r.content)