首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为必应搜索API通用Lisp使用Drakma时出错

为必应搜索API通用Lisp使用Drakma时出错
EN

Stack Overflow用户
提问于 2016-01-23 21:49:14
回答 1查看 232关注 0票数 4

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

代码语言:javascript
复制
(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))

然后我称之为,但它只适用于简短的搜索条件,我不知道为什么。这不管用:

代码语言:javascript
复制
(convert-to-string (drakma-bing "what is the largest man in the world"))

但这确实是

代码语言:javascript
复制
(convert-to-string (drakma-bing "what is"))

知道为什么吗?

谢谢。

编辑:

我尝试用手工编码print函数,而不是用更长的字符串来使用这个函数,但是它仍然不能工作,所以Drakma肯定有一个错误。我试着用手在web浏览器中输入域,所以我认为这个错误与Drakma有关。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-24 08:33:57

对于空格,您需要使用+而不是%20

代码语言:javascript
复制
(defun get-rid-of-spaces (var)
 (cl-ppcre:regex-replace-all " " var "+"))
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34969298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档