我有一个RESTful API,我在EC2实例上使用Elasticsearch的一个实现来索引一个内容语料库。我可以从我的终端(MacOSX)运行以下命令来查询搜索:
curl -XGET 'http://ES_search_demo.com/document/record/_search?pretty=true' -d '{
"query": {
"bool": {
"must": [
{
"text": {
"record.document": "SOME_JOURNAL"
}
},
{
"text": {
"record.articleTitle": "farmers"
}
}
],
"must_not": [],
"should": []
}
},
"from": 0,
"size": 50,
"sort": [],
"facets": {}
}'
如何使用python/requests
或python/urllib2
将上面的内容转换为API请求(不确定要使用哪个-一直在使用urllib2,但听说请求更好…)?我是头球还是其他传球?
所以您希望在GET请求的主体中传递数据,最好是在POST调用中这样做。您可以通过使用这两个请求来实现这一点。
原始请求
带请求的示例调用
使用requests和json使其变得简单。
json.loads
函数Requests模块提供有用的函数来循环成功和失败。
if(Response.ok)
:将帮助您确定您的API调用是否成功(响应代码-200)Response.raise_for_status()
将帮助您获取从API返回的http代码。下面是进行此类API调用的示例代码。也可以在github中找到。代码假设API使用摘要式身份验证。您可以跳过此步骤,也可以使用其他适当的身份验证模块对调用API的客户端进行身份验证。
使用requests:
根据API返回的响应类型,您可能需要查看
response.text
或response.json()
(或者可能首先检查response.status_code
)。请参阅快速启动文档here,特别是this section。相关问题 更多 >
编程相关推荐