Как получить ответ JSON от / place / v1 / autosuggest в Java? - PullRequest
0 голосов
/ 15 декабря 2018

У меня проблемы с API Here.Когда я запускаю команду curl, я получаю объект JSON, но когда я пытаюсь это сделать в своем коде, я продолжаю возвращать HTML.Кто-нибудь может мне помочь, пожалуйста!Что я делаю неправильно?Это команда curl:

 curl \
  --compressed \
  -H 'Accept-Encoding:gzip' \
  -H 'Accept-Language:en-US,en;q=0.5' \
  --get 'https://places.cit.api.here.com/places/v1/autosuggest' \
    --data-urlencode 'app_code=my_code' \
    --data-urlencode 'app_id=my_id' \
    --data-urlencode 'at=48.13642,11.57755' \
    --data-urlencode 'pretty=true' \
    --data-urlencode 'q=Hofbräuhaus am Platz' 

А это мой код Java:

private void searchForPlacesInMunich(String place) throws IOException {
        String link = "https://places.cit.api.here.com/places/v1/autosuggest"
                + "?app_id=" + app_id
                + "&app_code=" + app_code
                + "&at=" + latitude + "%2C" + longitude
                + "&q=" + place
                + "&pretty";
        URL url = new URL(link);
          HttpURLConnection con = (HttpURLConnection) url.openConnection();
          con.setRequestProperty("Accept-Encoding", "gzip");
          con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
          con.setRequestMethod("GET");
          con.connect();
          System.out.println("Length : " + con.getContentLength());

          Reader reader = null;
          if ("gzip".equals(con.getContentEncoding())) {
             reader = new InputStreamReader(new GZIPInputStream(con.getInputStream()));
          }
          else {
             reader = new InputStreamReader(con.getInputStream());
          }

          while (true) {
             int ch = reader.read();
             if (ch==-1) {
                break;
             }
             System.out.print((char)ch);
          }
    }

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Только что нашел способ получить JSON вместо пользовательского интерфейса: ответ был довольно прост.Просто добавьте обратный вызов в URL, вдохновленный ЗДЕСЬ помещает REST apis вместо веб-интерфейса вместо json

0 голосов
/ 15 декабря 2018

Попробуйте с JSONObject

JSONObject myObject = new JSONObject(result);

Источник от: Получить объект JSON из ответа HTTP

...