【问题标题】:Bing search api with java必应搜索 api 与 java
【发布时间】:2014-09-10 13:17:02
【问题描述】:

尝试将 bing api 与 java(不是 android)一起使用

有这个代码:

import java.util.Iterator;

import net.billylieurance.azuresearch.AbstractAzureSearchQuery.AZURESEARCH_FORMAT;
import net.billylieurance.azuresearch.AzureSearchResultSet;
import net.billylieurance.azuresearch.AzureSearchWebQuery;
import net.billylieurance.azuresearch.AzureSearchWebResult;


public class mainTest {

    public static void main(String[] args){

        AzureSearchWebQuery aq = new AzureSearchWebQuery();

        String ACCOUNT_KEY = "WgQGPMPJH0FKBc/aWdiAeb05PiChO5XToKfDSmZ/Xuo";
        aq.setAppid(ACCOUNT_KEY);

        aq.setFormat(AZURESEARCH_FORMAT.XML);

        // searchParam is the field containing the keyword to be searched.
        aq.setQuery("games");

        aq.doQuery();

        AzureSearchResultSet<AzureSearchWebResult> azureSearchResultSet = aq
        .getQueryResult();

        for (Iterator<AzureSearchWebResult> iterator = azureSearchResultSet
        .iterator(); iterator.hasNext();) {
        AzureSearchWebResult result = (AzureSearchWebResult) iterator
        .next();

        // Populate the data from result object in to your custom objects.

        System.out.println(result.getTitle());
        System.out.println(result.getUrl());
        System.out.println(result.getDisplayUrl());
        System.out.println(result.getDescription());


        }




    }

还有我的罐子:

apache-httpcomponents-httpcore
azure-bing-search-java-0.12.0
httpclient-4.2.3
org-apache-commons-logging

但得到了错误:

Exception in thread "main" java.lang.NoSuchFieldError: DEF_CONTENT_CHARSET
  at org.apache.http.impl.client.DefaultHttpClient.setDefaultHttpParams(DefaultHttpClient.java:175)
  at org.apache.http.impl.client.DefaultHttpClient.createHttpParams(DefaultHttpClient.java:158)
  at org.apache.http.impl.client.AbstractHttpClient.getParams(AbstractHttpClient.java:448)
  at org.apache.http.impl.client.AbstractHttpClient.createClientConnectionManager(AbstractHttpClient.java:309)
  at org.apache.http.impl.client.AbstractHttpClient.getConnectionManager(AbstractHttpClient.java:466)
  at org.apache.http.impl.client.AbstractHttpClient.createHttpContext(AbstractHttpClient.java:286)
  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:851)
  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784)
  at net.billylieurance.azuresearch.AbstractAzureSearchQuery.doQuery(AbstractAzureSearchQuery.java:338)
  at mainTest.main(mainTest.java:38)

我读到一些可能是罐子彼此不兼容的地方。但 dot 知道如何检查。或者也许是别的东西。

任何建议都会很棒。

【问题讨论】:

  • 也许您不想公开发布您的 API 密钥。
  • 它仅用于测试,也许有人想检查我的代码。
  • 您使用的是哪个版本的 httpcore?它可能与您使用的 httpclient 版本不兼容(请参阅*.com/questions/18246979/…
  • 更新了所有,它似乎正在工作,但在线 aq.doQuery();它堆叠(无限循环)。为什么?
  • 我不知道。但是对于一个新问题,您可能想提出一个新问题(因为您当前帖子的一半与您当前的问题无关)。

标签: java api search bing


【解决方案1】:

您的类路径中有两个或多个 httpcore jar。

【讨论】:

  • 您好,请在您的回答中扩大一点,这样可以帮助遇到同样问题的任何人