Java 自定义搜索API
当我尝试使用谷歌自定义搜索API时,我遇到了错误。 在谷歌服务器中,我可以看到我的请求 代码:Java 自定义搜索API,java,jackson,Java,Jackson,当我尝试使用谷歌自定义搜索API时,我遇到了错误。 在谷歌服务器中,我可以看到我的请求 代码: public class Main { private static final String APPLICATION_NAME = "MyWeb"; private static final String API_KEY = "00000"; private static final String engine = ("000000"); private static HttpTranspor
public class Main {
private static final String APPLICATION_NAME = "MyWeb";
private static final String API_KEY = "00000";
private static final String engine = ("000000");
private static HttpTransport httpTransport;
@SuppressWarnings("unused")
private static Customsearch client;
public static void main(String[] args) throws IOException {
Customsearch customsearch = new Customsearch(new NetHttpTransport(), new JacksonFactory(),null);
try {
Customsearch.Cse.List list = customsearch.cse().list("HERE");
list.setKey(API_KEY);
list.setCx(engine);
Search results = list.execute();
List<Result> items = results.getItems();
for(Result result:items)
{
System.out.println("Title:"+result.getHtmlTitle());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
正如lakshman在评论中指出的,这几乎肯定是由于在构建
Customsearch
对象时缺少com.google.api.client.json.JsonFactory
的实现,您当前将其设置为null。尝试添加此功能的实现
Customsearch对象目前有一些JavaDoc,这可能会对您有所帮助。类路径上有API,您也有实现吗?如果这不是问题,请发布一些代码…在您的用户
JsonFactory
class
Exception in thread "main" java.lang.AbstractMethodError: com.google.api.client.json.JsonFactory.createJsonParser(Ljava/io/InputStream;Ljava/nio/charset/Charset;)Lcom/google/api/client/json/JsonParser;
at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:85)
at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:81)
at com.google.api.client.http.HttpResponse.parseAs(HttpResponse.java:459)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460)
at com.korney.Main.main(Main.java:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Process finished with exit code 1