Mam RESTful API, które ujawniłem za pomocą implementacji Elasticsearch na instancji EC2 w celu indeksowania korpusu treści. Mogę kwerendy wyszukiwania poprzez prowadzenie następujących od mojego terminala (MacOSX):Wysyłanie żądania do RESTful API przy użyciu pythona
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": {}
}'
Jak włączyć powyższe na żądanie API z wykorzystaniem python/requests
lub python/urllib2
(nie wiem, który z nich, aby przejść do - zostały przy użyciu urllib2, ale usłyszeć, że prośby są lepsze ...)? Czy przekazuję jako nagłówek lub w inny sposób?
Myślę, że powinno być: response = requests.post (url, data = data) –
"requests.get" nie przyjmuje parametru "data".Może to wymagać opcjonalnego parametru "params", który zwykle jest łańcuchem znaków zapytania. Jeśli ładunek jest niezbędny do pobrania danych (takich jak przykład zamieszczony w pytaniu), należy użyć "requests.post". Dodatkowo użycie biblioteki "json" ułatwia analizę odpowiedzi jsona. – HVS
Czy działa z pythonem 3? –