我正在使用以下PHP代码测试新的Bing Custom Search。结果是一个空白的白色屏幕,没有错误。是因为这项服务仍处于测试阶段吗?
<?php
$sURL = "https://api.cognitive.microsoft.com/bingcustomsearch/v5.0/search?q=dogs&customconfig=[mycustomconfigvalue]&responseFilter=Webpages&mkt=en-us&safesearch=Moderate";
$key = "[myPrimaryKey]";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $sURL);
curl_setopt($ch, CURLOPT_TIMEOUT, '1');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 'ocp-apim-subscription-key:$key');
$content = curl_exec($ch);
echo $content;
?>
当我尝试使用Postman验证API密钥是否适用于我时,我收到错误消息“无法获得任何响应”。
但是,如果我在端点部分下的https://customsearch.ai中尝试相同的值,则可以通过显示响应来完美地工作。
任何人都可以告诉我,我无法使用自己的PHP代码运行代码吗?
由于
答案 0 :(得分:1)
3 错误:
1 - CURLOPT_HEADER
与CURLOPT_HTTPHEADER
不同
2 - CURLOPT_HTTPHEADER
以array
为参数,而不是string
3 - 变量($key
)仅在双引号内扩展。
尝试:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $sURL);
curl_setopt($ch, CURLOPT_TIMEOUT, 1); # you may want increase this value
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["ocp-apim-subscription-key:$key"]);
$content = curl_exec($ch);
答案 1 :(得分:0)
我在某处回复了这个问题。这是一个工作的PHP片段。只需替换YOUR_QUERY,YOUR_KEY和YOUR_CUSTOMCONFIG。
$endpoint = 'https://api.cognitive.microsoft.com/bingcustomsearch/v7.0/search';
$term = 'YOUR_QUERY';
$headers = "Ocp-Apim-Subscription-Key: YOUR_KEY\r\n";
$options = array ('http' => array (
'header' => $headers,
'method' => 'GET'));
$context = stream_context_create($options);
$result = file_get_contents($url . "?q=" . urlencode($query) . "&customconfig=YOUR_CUSTOMCONFIG&responseFilter=Webpages&mkt=en-us&safesearch=Moderate", false, $context);