在Android中获取静态映射的请求错误(错误400)

在Android中获取静态映射的请求错误(错误400),android,google-static-maps,Android,Google Static Maps,我正试图从地图上获取一张静态图像,并将其放在我的Android布局上。所以,我找到了一个关于谷歌静态地图的代码。令人惊叹的我在我的电脑上尝试了一些URL,它工作得非常好 但我的问题是,当我把URL放在Android上测试它时。当我尝试获取输入流(图像)时,它会给我FileNotFoundException,因为当我尝试连接时,它向我抛出了一个错误请求(错误400) 这是我的密码: public class ImageLoadingTask extends AsyncTask<String,

我正试图从地图上获取一张静态图像,并将其放在我的Android布局上。所以,我找到了一个关于谷歌静态地图的代码。令人惊叹的我在我的电脑上尝试了一些URL,它工作得非常好

但我的问题是,当我把URL放在Android上测试它时。当我尝试获取输入流(图像)时,它会给我FileNotFoundException,因为当我尝试连接时,它向我抛出了一个错误请求(错误400)

这是我的密码:

public class ImageLoadingTask extends AsyncTask<String, Void, Bitmap> {
    @Override
    protected Bitmap doInBackground(String... stringURL) {
        Bitmap bmp = null;
        try {
            URL url = new URL(stringURL[0]);

            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setDoInput(true);
            conn.connect();
            InputStream is = conn.getInputStream();
            BitmapFactory.Options options = new BitmapFactory.Options();

            bmp = BitmapFactory.decodeStream(is, null, options);
        } catch (IOException e) {
            e.printStackTrace();
        }

        return bmp;
    }

    @Override
    protected void onPostExecute(Bitmap result) {
        mapView.setImageBitmap(result);
        super.onPostExecute(result);
    }

}
公共类ImageLoadingTask扩展异步任务{
@凌驾
受保护位图doInBackground(字符串…字符串URL){
位图bmp=null;
试一试{
URL URL=新URL(stringURL[0]);
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
conn.setDoInput(真);
连接();
InputStream is=conn.getInputStream();
BitmapFactory.Options=new-BitmapFactory.Options();
bmp=BitmapFactory.decodeStream(is,null,options);
}捕获(IOE异常){
e、 printStackTrace();
}
返回bmp;
}
@凌驾
受保护的void onPostExecute(位图结果){
setImageBitmap(结果);
super.onPostExecute(结果);
}
}


我需要钥匙吗??为什么我不需要一个在浏览器中执行此操作的键呢?

您发送到Google的URL中有一个奇怪的字符。在发送之前,在上面运行一个
URLEncode.encode()
,或者如果你总是显示圣保罗,你可以说“圣保罗”,让谷歌来计算,或者“S%C3%A3o%20Paulo”。就我个人而言,我认为第一种方法不太容易出错,但这取决于你

您可以发布url
ImageLoadingTask
gets吗?也许在你做任何事情之前先记录下来。如果谷歌不喜欢你的url,并且你可能构建了错误的url,它将返回400。不管怎样,我看到你发布了它。请确保对url进行编码。。。那个“ã”在我看来有点可疑。如果你只是把这个url放到Chrome浏览器中,它会做一些肮脏的工作,确保它的url安全。我不认为它有URL。是的,它是!!这就是问题所在。我试过用“巴西”,效果很好!谢谢。我应该把这个作为答案发布吗?是的。你知道如何格式化这个字符串以适合静态贴图吗?