Я начинаю использовать API пользовательского поиска Google в Java, но он просто не подключается.
Я получаю данные JSON от Google. (Я должен, но он не подключается .. :()
HttpResponse response = httpClient.execute(httpGet);
// exception is thrown at this point.
, которая является строкой в моем коде.
Код:
public class MyGoogleSearch{
final static String searchURL = "https://www.googleapis.com/customsearch/v1?";
// This is Important :
final static String apiKey = "My-Key-has a '-'";
final static String customSearchEngineKey = "My-Custom-search-engine-that-has a ':' too";
public String makeSearchString(String qSearch){
String toSearch = searchURL + "key=" + apiKey + "&cx=" + customSearchEngineKey;
toSearch += "&q=" + qSearch + "&alt=json";
return toSearch;
}
public static void main(String[] argv) throws IOException{
System.setProperty("proxyHost", "my-host");
System.setProperty("proxyPort","my-Port");
MyGoogleSearch browser = new MyGoogleSearch();
String toSearch = browser.makeSearchString("flower");
System.out.println(toSearch);
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(toSearch);
HttpResponse response = httpClient.execute(httpGet);
// exception is thrown here.
HttpEntity entity = response.getEntity();
if(entity != null){
InputStream inStream = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(inStream));
int length = 0;
byte[] buffer = new byte[2048];
while((length = inStream.read(buffer)) != -1)
System.out.println(buffer);
String inputLine;
while((inputLine = reader.readLine()) != null)
System.out.println(inputLine);
}
}
}
// Ошибка:
Exception in thread "main" org.apache.http.conn.HttpHostConnectException: Connection to https://www.googleapis.com refused at
org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:158)
....
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
Это правильный способ сделать?
Я не сделал никакого вида кодировки UTF-8. Будет ли это проблемой?
На этой странице:
http://code.google.com/apis/customsearch/v1/getting_started.html
Вот пример того, как это работает в API пользовательского поиска JSON / Atom, который ищет лекции в тестовой системе пользовательского поиска:
GET https://www.googleapis.com/customsearch/v1?key=INSERT-YOUR-KEY&cx=017576662512468239146:omuauf_lfve&q=lectures
// Это только для javaScript или для java
Однако я поставил свой ключ пользовательской поисковой системы на cx, который должен быть правильным
Я пошел в Google Api Explorer https://code.google.com/apis/explorer/
Я выбираю пользовательский поиск и заполняю столбцы * q и cx, как я заполнил в своей программе:
и он показал результаты и
ПОЛУЧИТЬ https://www.googleapis.com/customsearch/v1?q=o&cx={MY-Custom-Search-Engine-No}&pp=1&key={YOUR_API_KEY}
но на этот раз значение cx содержало% 3 вместо символа «:».
Как бы я это сделал для всех символов в моих ключах и cse-no