java - 如何正确处理 Java 中 Bing 搜索 API 的响应?

标签 java json search bing bing-api

我已成功从 Java 中的 Bing's-Search-API 下载图像。但是,我不明白如何处理响应。

例如,如果找不到图像,或者用户尝试搜索成人内容(即使设置为中等),我应该如何捕获这些响应?

非常感谢。

这是我的代码:

public void SearchWithBing(String search){

        search = search.replaceAll(" ", "%20");
        String accountKey="acKey";
        byte[] accountKeyBytes = Base64.encodeBase64((accountKey + ":" + accountKey).getBytes());
        String accountKeyEnc = new String(accountKeyBytes);
        URL url;
        try {
            url = new URL(
                    "https://api.datamarket.azure.com/Bing/Search/Image?Query=%27" + search + "%27&$top=50&$format=json");

        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        conn.setRequestProperty("Authorization", "Basic " + accountKeyEnc);
        conn.setRequestProperty("Accept", "application/json");
        BufferedReader br = new BufferedReader(new InputStreamReader(
                (conn.getInputStream())));
        String output;
        System.out.println("Output from Server .... \n");

        while ((output = br.readLine()) != null) {
                gsonParser(output);
                System.out.println(output);
        }

        conn.disconnect();

        } catch (MalformedURLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

       //EndOfBingSearch  
    } 

最佳答案

您可以使用Gson:

    Gson gson = (new GsonBuilder()).create();
BingSearchResults bingSearchResults = gson.fromJson(res, BingSearchResults.class);

具有以下类:

public class BingSearchResults {

public ResultsContent d;

public static class ResultsContent {
    public Result[] results;
    public String __next;
}

public static class Result {
    public String ID;
    public String Title;
    public String Description;
    public String DisplayUrl;
    public String Url;
    public Metadata __metadata;

}

public static class Metadata {
    public String uri;
    public String type;
}

}

关于java - 如何正确处理 Java 中 Bing 搜索 API 的响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21734496/

相关文章:

跨平台下Java Swing GUI Size

java - 如何从标有 enctype :multipart/form-data(JSF 2. 0) 的表单中提取文本

java - Spring MVC JSTL 配置 ClassNotFoundException

javascript - 将文本文件转换为 JSON

java - 检查每个字符串是否存在于另一个字符串中但是顺序

python - 将 json 数据(未定义/困惑)转换为 DataFrame 的正确方法是什么?

algorithm - 限制 Prolog 中的搜索 - Magic Square

algorithm - 为同类的多个查询优化算法

java - 搜索对象数组列表困惑

iphone - 解析 JSON - iPhone