2016-08-15 39 views
1

上午希望有人能夠幫助我停止撞擊磚牆,指出我在哪裏出錯。使用PHP/cURL查詢Azure認知服務 - Web Search API v5

我正在嘗試使用PHP和cURL的Cognitive Services Search API v5。我也嘗試使用API​​文檔中的PHP代碼示例(位於:https://www.microsoft.com/cognitive-services/en-us/bing-web-search-api/documentation),但仍然遇到同樣的問題:404錯誤。

使用下面的PHP:

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, "https://api.cognitive.microsoft.com/bing/v5.0/search?q=bill+gates&count=10&offset=0&mkt=en-us&safesearch=Moderate"); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Ocp-Apim-Subscription-Key: XXXXXXXXXX")); 

$output = curl_exec($ch); 
$reporting = curl_getinfo($ch); 

我得到以下報告乏返回:

Array 
(
    [url] => https://api.cognitive.microsoft.com/bing/v5.0/search?q=bill+gates&count=10&offset=0&mkt=en-us&safesearch=Moderate 
    [content_type] => application/json 
    [http_code] => 404 
    [header_size] => 123 
    [request_size] => 205 
    [filetime] => -1 
    [ssl_verify_result] => 0 
    [redirect_count] => 0 
    [total_time] => 0.276298 
    [namelookup_time] => 0.153477 
    [connect_time] => 0.177758 
    [pretransfer_time] => 0.252367 
    [size_upload] => 0 
    [size_download] => 0 
    [speed_download] => 0 
    [speed_upload] => 0 
    [download_content_length] => 0 
    [upload_content_length] => -1 
    [starttransfer_time] => 0.276209 
    [redirect_time] => 0 
    [redirect_url] => 
    [primary_ip] => 104.45.90.247 
    [certinfo] => Array 
     (
     ) 

    [primary_port] => 443 
    [local_ip] => 149.210.219.109 
    [local_port] => 33405 
) 

我已經嘗試了幾個不同的服務器相同的代碼,並有同樣的問題。我也嘗試在終端上成功使用cURL,以確保我使用了正確的訂閱密鑰。

任何人都可以指出我哪裏錯了嗎?

歡呼聲中,克雷格

回答

0

認知服務搜索API V5的終點是在HTTPS門戶,需要驗證SSL證書。

如果您使用代碼$error= curl_error($ch);,輸出變量$error,您將收到錯誤消息"SSL certificate problem: unable to get local issuer certificate"

快速修復解決方案是繞過SSL證書。請嘗試在您的代碼片段中添加該句子。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

任何進一步的問題,請隨時讓我知道。

+0

Apols延遲,但感謝您的建議 - 不幸的是,它沒有使查詢工作。但是,從文檔中提供的虛擬表單(搜索除「Bill Gates」之外的其他內容)更改查詢以搜索其他內容,而不是DID工作正常。 – appshine