【发布时间】: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();它堆叠(无限循环)。为什么?
-
我不知道。但是对于一个新问题,您可能想提出一个新问题(因为您当前帖子的一半与您当前的问题无关)。