我來自this question。谷歌搜索通過Java Api - 多個請求
下面的代碼無法正常工作:
public static void main(String[] args) throws Exception {
for (int i = 0; i < 15; i++)
{
String google = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=";
String search = "test";
String charset = "UTF-8";
URL url = new URL(google + URLEncoder.encode(search, charset));
Reader reader = new InputStreamReader(url.openStream(), charset);
GoogleResults results = new Gson().fromJson(reader, GoogleResults.class);
// Show title and URL of 1st result.
System.out.println(results.getResponseData().getResults().get(0).getTitle());
System.out.println(results.getResponseData().getResults().get(0).getUrl());
}
}
搜索查詢工作正常,如果我運行它一個時間,但是在這個循環中,我得到一個空指針異常。
不幸的是,我需要我的程序進行多次查詢:(我該怎麼辦?
它返回在第一results.getResponseData
一個NullPointerException
。
我也面臨這個問題。那麼如何擺脫這一點? –
你不能。這違反了Google的TOS。您可以嘗試添加更長的延遲,或嘗試將IP發送給Google。 – David
我也加了ip。但仍然無法正常工作。 'String address =「https://ajax.googleapis.com/ajax/services/search/web?v=1.0&start=0&userip=14.90.136.150&safe=active&rsz=8 &q=";' 有時它不給任何例外和搜索從谷歌的文本,但大部分時間,它會拋出'NullPointerException'爲什麼? –