Подключение к Интернету: пользовательский поиск Google в приложении Java "не подключается" () - PullRequest
1 голос
/ 04 сентября 2011

Я начинаю использовать 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

1 Ответ

0 голосов
/ 05 сентября 2011

проблема, похоже, связана с googleapis, вы уверены, что используете правильный прокси?Попробуйте просто подключиться к google.com или любому URL-адресу, чтобы проверить, что вы проходите прокси-сервер, попробуйте его без настройки прокси.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...