2017-02-09 57 views
1

我写通过“邮差”它看起来像这样我怎样才能将查询发送到使用curl POST使用PHP

POST: http://someurl 

{ 
    "elasticQuery": //Elastic Query is a user defined field. 
    { 
     "_source": [ "field 1", "field 2", "field 3" ], 
     "query": 
     { 
      "match_all":{} 
     } 
    }, 
    "index": "indexName", 
    "scroll": "True" 
} 

这会返回大量的JSON格式的文件从网站3个给出字段的查询网址。 我想知道我将如何使用PHP做卷曲呼叫,收到同样的文件格式此查询。

我不知道这甚至有可能,但您的帮助将不胜感激。 谢谢。

回答

2

尝试以下操作:

<?php 

$curl = curl_init(); 

curl_setopt_array($curl, array(
    CURLOPT_URL => "YOUR_URL_HERE", 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_ENCODING => "", 
    CURLOPT_MAXREDIRS => 10, 
    CURLOPT_TIMEOUT => 30, 
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 
    CURLOPT_CUSTOMREQUEST => "POST", 
    CURLOPT_POSTFIELDS => "{\"elasticQuery\":{\"_source\":[\"field 1\",\"field 2\",\"field 3\"],\"query\":{\"match_all\":{}}},\"index\":\"indexName\",\"scroll\":\"True\"}", 
    CURLOPT_HTTPHEADER => array(
    "accept: application/json", 
    "cache-control: no-cache", 
    "content-type: application/json" 
), 
)); 

$response = curl_exec($curl); 
$err = curl_error($curl); 

curl_close($curl); 

if ($err) { 
    echo "cURL Error #:" . $err; 
} else { 
    echo $response; 
} 

记住您自己的网址替换CURLOPT_URL字符串。作为进一步的提示,你可以让邮差为你生成。在请求打开的情况下,在“发送”按钮下方的右上角,有一小段文字显示“代码”。选择它,你应该可以选择生成PHP cURL。

+1

它的工作,非常感谢。并感谢邮递员提示。 – ScipioAfricanus