Есть ли у демонстрационного ключа Bing Search API какие-либо ограничения? - PullRequest
1 голос
/ 03 августа 2020

Есть ли у демо-ключа Bing Search API (изображения) какие-либо ограничения? На тестовой странице (https://azure.microsoft.com/ru-ru/services/cognitive-services/bing-image-search-api/) поисковая фраза дает много результатов, но в моем скрипте результатов нет вообще. Вот сам скрипт:

function getImages($query) {
    $query = str_replace(' ', '+', $query);
    $url = 'https://api.cognitive.microsoft.com/bing/v7.0/images/search?q=' . $query . '&safesearch=strict';
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_TIMEOUT, '1'); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array(
        'Content-Type: multipart/form-data',
        'Ocp-Apim-Subscription-Key: KEY'
    ));

    $result = curl_exec($curl);
    $result = json_decode($result, true);

    return $result['value'];
}

1 Ответ

1 голос
/ 05 августа 2020

Причина :

Значение CURLOPT_TIMEOUT слишком короткое.

Измените значение CURLOPT_TIMEOUT на >=5 , а затем продолжить тест.

В почтальоне для запроса образца требуется 1.074 с. Меняю значение CURLOPT_TIMEOUT. У меня работает.

enter image description here

Code:

<?php
function getImages($query) {
    $query = str_replace(' ', '+', $query);
    $url = 'https://api.cognitive.microsoft.com/bing/v7.0/images/search?q=' . $query . '&safesearch=strict';
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_TIMEOUT, '5'); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array(
        'Content-Type: multipart/form-data',
        'Ocp-Apim-Subscription-Key: ********'
    ));
    $result = curl_exec($curl);
    $result = json_decode($result, true);
    return $result['value'];
}
$result=getImages("cats");
print_r($result);
?>

Run it online.

Open сайт для тестирования кода онлайн . Вставьте код и запустите его.

Затем вы можете проверить результат между почтальоном и онлайн.

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...