使用Python的请求使用表单数据发出POST请求

时间:2015-07-15 21:08:00

标签: python api python-2.7 http-post python-requests

我正在尝试从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.'})

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

1 个答案:

答案 0 :(得分:5)

你做得恰到好处;发送带有POST参数的text请求会给我带有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个字符
  •   
  • 指定了错误的语言
  •   

language可以是englishdutchportuguesespanish,但如果您不包含english,则默认为 Field f = Unsafe.class.getDeclaredField("theUnsafe"); f.setAccessible(true); Unsafe unsafe = (Unsafe) f.get(null); 。如果您确实将其包含在请求中,如果未将其设置为这4个支持值中的一个,则还会出现400错误。