Попытка получить доступ к местам Google, используя клиент API Google в GAE - PullRequest
1 голос
/ 22 мая 2011

Я пытаюсь получить доступ к API Google Места из appengine, используя код, подобный следующему:

String PLACES_DETAILS_URL = "https://maps.googleapis.com/maps/api/place/details/json";

       // setup up the HTTP transport
    HttpTransport transport = new UrlFetchTransport();
    // add default headers
    GoogleHeaders defaultHeaders = new GoogleHeaders();
    transport.defaultHeaders = defaultHeaders;
   transport.defaultHeaders.put("Content-Type", "application/json");
    JsonHttpParser parser = new JsonHttpParser();
    parser.jsonFactory = new JacksonFactory();
    transport.addParser(parser);

    // build the HTTP GET request and URL
    HttpRequest request = transport.buildGetRequest();
    request.setUrl(PLACES_DETAILS_URL);
    GenericData data = new GenericData();
    data.put("reference", restaurantGoogleId);
    data.put("sensor", "false");
    data.put("key", ApplicationConstants.GoogleApiKey);
    JsonHttpContent content = new JsonHttpContent();
    content.jsonFactory=new JacksonFactory();
    content.data = data;
    request.content = content;

    try {
        HttpResponse response =  request.execute();
        String r = response.parseAsString();

        r=r;
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

Я не знаю, даже если это рекомендуемый способ.Если так, почему это не работает? Если я помещаю запрос в браузер напрямую, он работает, но с этим кодом он всегда возвращает мне «Запрос отклонен».

Заранее спасибо.

1 Ответ

0 голосов
/ 22 мая 2011

В конце было легко, я смешал глаголы get и post:

HttpTransport transport = new UrlFetchTransport();
        // add default headers
        GoogleHeaders defaultHeaders = new GoogleHeaders();
        transport.defaultHeaders = defaultHeaders;
       transport.defaultHeaders.put("Content-Type", "application/json");
       JsonCParser parser = new JsonCParser();
        parser.jsonFactory = new JacksonFactory();
        transport.addParser(parser);

        // build the HTTP GET request and URL
        HttpRequest request = transport.buildGetRequest();
        request.setUrl("https://maps.googleapis.com/maps/api/place/details/json?reference=CmRYAAAAciqGsTRX1mXRvuXSH2ErwW-jCINE1aLiwP64MCWDN5vkXvXoQGPKldMfmdGyqWSpm7BEYCgDm-iv7Kc2PF7QA7brMAwBbAcqMr5i1f4PwTpaovIZjysCEZTry8Ez30wpEhCNCXpynextCld2EBsDkRKsGhSLayuRyFsex6JA6NPh9dyupoTH3g&sensor=true&key=<APIKEY>");


        try {
            HttpResponse response =  request.execute();
            String r = response.parseAsString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...