0

У меня есть такой URL https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins=Belarus,Minsk,Kuprevicha,1/2&destinations=Belarus,Minsk,Kurchatova,8&key= {api_key} и brovser он рассчитывает расстояние правильно:org.apache.http.client.fluent развращает URL

{ 
    "destination_addresses" : [ "ул. Курчатова 8, Минск, Беларусь" ], 
    "origin_addresses" : [ 
     "ул. Академика Купревича 1/2, Минск 220141, Беларусь" 
    ], 
    "rows" : [ 
     { 
     "elements" : [ 
      { 
       "distance" : { 
        "text" : "24,5 км", 
        "value" : 24526 
       }, 
       "duration" : { 
        "text" : "20 мин.", 
        "value" : 1196 
       }, 
       "status" : "OK" 
      } 
     ] 
     } 
    ], 
    "status" : "OK" 
} 

, но когда я использую org.apache.http.client.fluent .request:

String req = Request.Get(uri).execute().handleResponse(UTF8_CONTENT_HANDLER); 

После выполнения этого кода я такой результат:

{ 
    "destination_addresses" : [ "Minsk, Belarus" ], 
    "origin_addresses" : [ "Minsk, Belarus" ], 
    "rows" : [ 
     { 
     "elements" : [ 
      { 
       "distance" : { 
        "text" : "1 m", 
        "value" : 0 
       }, 
       "duration" : { 
        "text" : "1 min", 
        "value" : 0 
       }, 
       "status" : "OK" 
      } 
     ] 
     } 
    ], 
    "status" : "OK" 
} 

Что я делаю неправильно?

+0

Когда я нажимаю на ссылку в Chrome, я получаю тот же ответ, что и с HttpClient. Я сомневаюсь, что эта проблема имеет какое-либо отношение к HttpClient. Захватите пакеты, переданные с вашим браузером, сравните их с данными, созданными HttpClient, и соответствующим образом настройте код – oleg

ответ

1

Проблема не была вызвана Apache Http Client. Google требует явно указать локализацию. Проба для локализации английского языка всегда работает по умолчанию. Если вы добавите &language=ru в url, он будет работать правильно.