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

pg2*_*455 3 python api http-post python-2.7 python-requests

我正在尝试从Python中查询此API。它似乎以400个代码响应。有人可以告诉我该如何查询该A​​PI吗?

http://text-processing.com/docs/phrases.html中记录了此API。

import requests
r = requests.post('http://text-processing.com/api/phrases/',
                  data= {'text':'This is California.'})
Run Code Online (Sandbox Code Playgroud)

我想我误解了应该在此处发布数据的方式。

Mar*_*ers 6

您做的完全正确;发送POST带有text参数的请求会给我200的JSON响应:

>>> 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']}
Run Code Online (Sandbox Code Playgroud)

如果收到400响应,则说明发送的数据过多或值为空:

失误

在以下情况下,将返回400 Bad Request响应:

  • 没有提供文字值
  • 文字超过1,000个字符
  • 指定的语言不正确

language可以englishdutchportuguesespanish,但默认english,如果你不包括它。如果您确实将其包含在请求中,并且未将其设置为这4个受支持的值之一,则也会出现400错误。