2017-02-09 58 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