gpt4 book ai didi

lisp - 将 Drakma 用于必应搜索 API Common Lisp 时出错

转载 作者:太空宇宙 更新时间:2023-11-03 18:40:07 24 4
gpt4 key购买 nike

我正在构建一个程序,该程序使用 Bing 的搜索 API 和 Drakma 库的通用 lisp 来显示一些结果,但由于某种原因在发送更长的查询时出现错误它根本不显示任何结果。它适用于较短的查询。我正在为这个问题使用临时帐户。我有以下代码。

(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
'("bob.hammerston@mailinator.com" "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 一定有错误。我尝试将域手动输入到 Web 浏览器中并且它有效,这就是为什么我认为错误出在 Drakma 上。

最佳答案

您需要使用 + 而不是 %20 作为空格。

(defun get-rid-of-spaces (var)
(cl-ppcre:regex-replace-all " " var "+"))

关于lisp - 将 Drakma 用于必应搜索 API Common Lisp 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34969298/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com