使用Python的request库发送带有表单数据的POST请求

4
我正在尝试在Python中查询此API。它似乎会响应400代码。有人能告诉我应该如何查询这个API吗?
这个API的文档在http://text-processing.com/docs/phrases.html
import requests
r = requests.post('http://text-processing.com/api/phrases/',
                  data= {'text':'This is California.'})

我想我误解了这里应该发布数据的方式。


我得到了一个200的响应,对于那个确切的代码。 - Martijn Pieters
太神奇了...之前对我不起作用,现在却很好!我真是太倒霉了! - pg2455
1个回答

6
你做得完全正确;发送一个带有 text 参数的 POST 请求将给我一个带有 JSON 内容的 200 响应:
>>> import requests
>>> url = 'http://text-processing.com/api/phrases/'
>>> params = {'text': 'This is California.'}
>>> r = requests.post(url, data=params)
>>> r
<Response [200]>
>>> r.json()
{u'NP': [u'California', u'This'], u'GPE': [u'California'], u'VP': [u'is'], u'LOCATION': [u'California']}

如果您收到400响应,则说明您发送的数据过多或为空值:
错误
以下情况下将返回400 Bad Request响应:
- 未提供文本值 - 文本超过1,000个字符 - 指定了不正确的语言
语言可以是英语、荷兰语、葡萄牙语或西班牙语,但如果您没有包含它,则默认为英语。如果您在请求中包含它,且未将其设置为这4个支持的值之一,则也会收到400错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接