Я создаю программу, которая использует API поиска Bing и общий lisp с библиотекой Drakma для отображения некоторых результатов, но по какой-то причине возникает ошибка при отправке более длинного запроса. Он вообще не отображает никаких результатов. Он работает для более коротких запросов. Я использую временную учетную запись для этого вопроса. У меня есть следующий код.
(defun get-rid-of-spaces (var)
(cl-ppcre:regex-replace-all " " var "%20"))
(defun print-bing (search-term)
(format nil "https://api.datamarket.azure.com/Bing/Search/v1/Web?Query=%27~a%27&Options=%27DisableLocationDetection%27&$format=json&$top=1" (get-rid-of-spaces search-term)))
(defun drakma-bing (search-term)
(drakma:http-request (print-bing search-term)
:basic-authorization
'("[email protected]" "L2gbaj+s1/KW/+ifAa9HrP0C1/kClpF4InH48Lw8UNc")))
(defun convert-to-string (response)
(map 'string #'code-char response))
А потом я вызываю это, но это работает только для коротких поисковых запросов, и я не могу понять, почему. Это не работает:
(convert-to-string (drakma-bing "what is the largest man in the world"))
Но это делает
(convert-to-string (drakma-bing "what is"))
Есть идеи, почему?
Спасибо.
Редактировать:
Я попытался кодировать функцию print-bing вручную вместо использования этой функции с более длинной строкой, и она все еще не работает, поэтому должна быть ошибка с Drakma. Я попытался ввести домен в веб-браузер вручную, и он работает, поэтому я думаю, что ошибка связана с Drakma.