java io ioexception 无法解析来自服务器地理编码器的响应

我正在使用此代码获取地理地址:

I am using this code to get geographical addresses:

private String getAddress(Location location)
{
    try{
        List<Address>   addresses = new Geocoder(this,Locale.getDefault()).getFromLocation(location.getLatitude(), location.getLongitude(), 1);
        if(addresses!=null)
        {
            String address="Address not available";

            for(int i=0;i<addresses.size();i++) 
            {

                Address addre=addresses.get(i);

                String street=addre.getAddressLine(0);
                if(null==street)
                    street="";

                String city=addre.getLocality();
                if(city==null) city="";

                String state=addre.getAdminArea();
                if(state==null) state="";


                String country=addre.getCountryName();
                if(country==null) country="";

                address=street+", "+city+", "+state+", "+country;

            }
            return address;
        }

    }
    catch (Exception e) {
        return "Address not available";
    }
    return "Address not available";
}

之前我得到一个地址列表返回,但现在我每次都得到这个异常:

Earlier I was getting an address list returned, but now I get, every time, this exception:

java.io.IOException unable to parse response from server 

请帮忙.

推荐答案

终于解决了我的问题.

如果您尝试非常频繁地(一分钟内多次)访问服务器以从 lat,long 获取地址,那么您可能会遇到此异常.此问题的解决方案可以是:

If you try to hit server very frequently(several times in a minute) for getting address from lat,long then you can get this exception.The solutions of this problem can be:

1-请尽量避免在一分钟内多次点击地址.
2-在不同的设备上运行此代码.

如果您想在同一设备上运行此代码,请清除您的应用数据(或卸载您的应用)并等待一段时间.

If you want to run this code on same device then clear your app data(or uninstall your app) and wait for some time.

相关文章