Google Places API: добавление нового места: Java / Groovy - PullRequest
1 голос
/ 14 мая 2011

Не могу заставить работать POST? Что не так?

Примечание: это работает для GET с автозаполнением GET работает без подписи URL

  1. Я следую инструкциям веб-служб, чтобы подписать URL-адрес моим "API-ключом" Документы еще говорят "идентификатор клиента"? http://code.google.com/apis/maps/documentation/webservices/

2. Попробуйте отправить данные POST с подписанным URL-адресом (также попробуйте подпись без знака)

def signedUrl = "https://maps.googleapis.com/maps/api/place/add/json?key=xxxxxkeyxxxxxx&sensor=false&signature=xxxxxxxxxxsignaturexxxxxx"

    String postData = "{'location': { 'lat': '-33.8669710','lng': '151.1958750'},'accuracy': '50','name': 'Google Shoes!'}"

    URL urlPost = new URL(signedUrl);
    URLConnection connection = urlPost.openConnection();
    connection.addRequestProperty("Referer", "http://www.mysite.com");

    connection.setDoOutput(true);
    connection.setRequestMethod("POST");
    connection.setRequestProperty("CONTENT-TYPE", "text/json");
    connection.setRequestProperty("CONTENT-LENGTH", postData.length() + "");
    OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
    out.write(postData);
    out.close();

    String line;
    StringBuilder builder = new StringBuilder();
    BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
    while((line = reader.readLine()) != null) {
         builder.append(line);
    }

    JSONObject json = new JSONObject(builder.toString());
       println json

Возвращает 403 "java.io.IOException: сервер возвратил код ответа HTTP: 403 для URL:"

Симуляция для раздела "Java Access", под которым они приводят пример GET http://code.google.com/apis/websearch/docs/#fonje

1 Ответ

1 голос
/ 14 мая 2011

ОК решено.

Нет необходимости подписывать URL-адрес

Неправильная строка postData должна была быть

String postData = "{\"location\": { \"lat\": -33.8669710,\"lng\": 151.1958750},\"accuracy\": 50,\"name\": \"Google Shoes!\", \"types\":[\"bar\"]}"
...