org.apache.http.client.fluent破坏URL
问题描述:
我有这样的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"
}
我在做什么错?
答
这个问题并没有被apache Http Client占用。 Google需要明确指定本地化。 Probaly英文本地化它始终默认工作。如果您将&language=ru
添加到网址,它将正常运行。
当我点击Chrome中的链接时,我得到了与HttpClient相同的响应。我怀疑这个问题与HttpClient有什么关系。捕获浏览器传输的数据包,将它们与HttpClient生成的数据包进行比较,并相应地调整您的代码 – oleg