1

编辑 2

发现我的错误,我传递了一个无效的参数,我刚刚想起我正在尝试一些东西。

抱歉给大家添麻烦了

我第一次使用谷歌自定义搜索引擎,到目前为止一切都很好。但是,当我尝试为具有空格的项目发送查询时,搜索引擎会返回错误的请求响应,例如

    myUrl = (CustomSearchEngineURL + API_KEY + "&cx=" + cxKey + "&q="
            + q.replace(" ", "%20") + "&searchType=" + searchType
            + "&imgType=" + imgType + "&imgSize=" + imgSize + "&num=20&alt=json");

这返回这个

 com.google.api.client.http.HttpResponseException: 400 Bad Request

编辑

我接受了 323go 的建议并尝试对我的 q 进行编码,这就是我实现它的方式

String encodedParms = null;
    try {
        encodedParms = URLEncoder.encode(q, "UTF-8");
    } catch (UnsupportedEncodingException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    myUrl = (CustomSearchEngineURL + API_KEY + "&cx=" + cxKey + "&q="
            + encodedParms + "&searchType=" + searchType + "&imgType="
            + imgType + "&imgSize=" + imgSize + "&num=20&alt=json");

    Log.d(Tag, myUrl);

    HttpRequestFactory httpRequestFactory = createRequestFactory(HTTP_TRANSPORT);

    HttpRequest request;
    try {
        request = httpRequestFactory.buildGetRequest(new GenericUrl(myUrl));
        String response = streamToString(request.execute().getContent());
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

在我的日志中,我得到了这个作为 url

https://www.googleapis.com/customsearch/v1?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-w&cx=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&q=Sunway+Lagoon+Theme+Park&searchType=image&imgType=photo&imgSize=xxlarge&num=20&alt=json

我仍然收到同样的错误请求错误

请问谁能告诉我我在做什么

4

1 回答 1

0

为什么不在单词之间添加“+”,我遇到了
与“word1 word2”相同的问题 - 响应 400 - 错误请求
使用“word1+word2” - 响应 2000 - 错误请求

于 2016-12-29T18:54:06.323 回答