安卓调用百度地图api 错误 mcode参数不存在
自己的手机app里用到了百度地图sdk,希望根据手机获得的坐标来逆向到百度地图的坐标。
根据api文档拼写了url,因为是移动端,说是要添加mcode参数,然后我的url看起来如下:
http://api.map.baidu.com/geocoder/v2/?ak=xxxxxxx&mcode=sh1code;packname&callback=renderReverse&location=36.652181,116.870643&output=json&pois=0
先在浏览器里检查了,可以正常返回结果,然后自己写了个简单的httpURLConnection测试了下,在电脑上也是可以的。
然后把同样的 数据请求代码HttpUtil.sendHttpRequest(使用httpURLConnection进行连接) 和 URL(上面的) 迁移到安卓工程里,到模拟器和真机上测试 都失败!!!
返回的响应消息: .....mcode参数不存在 ,网上搜了半天,最不解的就是同样的url,我也完全正确的添加了mcode。问题就是 电脑上HttpURLConnection代码发送请求以及浏览器里直接敲url都正常,就是手机上不对。
也是纠结了半天,网上没搜到有意义的回答。
最后想起HttpURLConnection和HttpClient有不同的,既然用HttpURLConnection出问题了,换HttpClient试试看,结果就正常可以访问了。
网上有很多关于HttpURLConnection和HttpClient的比较讨论,原来google在安卓2.2之前都是主推HttpClient的,之后就主推HttpURLConnection了。
上面mcode通过手机端访问时url参数丢失?的原因没来得及去分析,可以结合两种api的特性以及fiddler 手机抓包来看看。
问题解决了,代码很简单:
String address = ... //上面文章提到的 //Android端使用HttpGet请求百度api数据,返回结果正常
public static String sendHttpGet(String address){
try {
HttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(address); HttpResponse res = client.execute(httpGet); if(res.getStatusLine().getStatusCode() == 200){
return EntityUtils.toString(res.getEntity(),"utf-8");
} return res.getStatusLine().getReasonPhrase();
} catch (Exception e) {
e.printStackTrace();
return e.toString();
}
}
安卓调用百度地图api 错误 mcode参数不存在的更多相关文章
- scrapy爬虫框架调用百度地图api数据存入数据库
scrapy安装配置不在本文 提及, 1.在开始爬取之前,必须创建一个新的Scrapy项目.进入自定义的项目目录中,运行下列命令 scrapy startproject mySpider 其中, my ...
- 调用百度地图API的总结
因为项目要用到百度地图,所以先摸索了一下,各种功能官方都有文档,点击可查看,文章的话我就直接写我用到的功能例子了,要用可以直接复制粘贴~ 一.主要涉及到的几个接口(先申请密钥): 1.技术一:坐标转换 ...
- Angular 调用百度地图API接口
Angular 调用百度地图API接口 参考原文:https://blog.csdn.net/yuyinghua0302/article/details/80624274 下面简单介绍一下如何在Ang ...
- 调用百度地图Api实现的查看地图功能的小插件
1. 功能 bMap.js 可根据地理位置调用出百度地图,采用弹出框形式 2.用法 var city = '青岛市'; var address = '香港中路'; bMap.init({ city : ...
- 【c#】Form调用百度地图api攻略及常见问题
首先,在Form中调用百度地图api,我们需要使用webbrowser控件,这个在前面的文章中已经讲过了,可以参照(http://blog.csdn.net/buptgshengod/article/ ...
- HTML5调用百度地图API获取当前位置并直接导航目的地的方法
<!DOCTYPE html> <html lang="zh-cmn-Hans"> <meta charset="UTF-8&quo ...
- HTML5 调用百度地图API地理定位
<!DOCTYPE html> <html> <title>HTML5 HTML5 调用百度地图API地理定位实例</title> <head&g ...
- 跨平台移动开发_PhoneGap 使用Geolocation基于所在地理位置坐标调用百度地图API
使用Geolocation基于所在地理位置坐标调用百度地图API 效果图 示例代码 <!DOCTYPE html> <html> <head> <title& ...
- HTML5调用百度地图API进行地理定位实例
自从HTML5的标准确定以后,越来越多的网站使用HTML5来进行开发.虽然对HTML5支持的浏览器不是很多,但是依然抵挡不了大伙对HTML5开发的热情.今天为大家带来的是使用HTML5调用百度地图AP ...
随机推荐
- js加解密字符串
项目中经常会有url带参并取参数值的问题,最常见的就是登录后再回到原来的页面redirect_uri,我们通常会使用 encodeURIComponent() 转码,当然简单的可以这样使用,如果涉及到 ...
- JQuery的无缝滚动
图片无缝向左滚动的代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...
- java中Class.forName("xxx")和ClassLoader().loadClass("xxx")的区别
一.首先,查看Class类中的forName方法,可以发现有如下三个方法,但是我们通常用的是只有一个参数的方法. 简单介绍一下这三个方法: 第一个方法Class.forName("xxx&q ...
- 【统计学习】主成分分析PCA(Princple Component Analysis)从原理到实现
[引言]--PCA降维的作用 面对海量的.多维(可能有成百上千维)的数据,我们应该如何高效去除某些维度间相关的信息,保留对我们"有用"的信息,这是个问题. PCA给出了我们一种解决 ...
- 疑难问题解决备忘录(3)——ubuntu12.04配置vsftp本地用户登录
vsftpd.conf相关项设置 local_enabled = YES write_enable=YES pam_service_name=ftp pam_service_name按默认的vsftp ...
- unity 改变场景
public class GameManager : MonoBehaviour { public void OnStartGame(int sceneName) { SceneManager.Loa ...
- C语言-占位符
%a 浮点数.十六进制数字和p-记数法(C99) %A 浮点数.十六进制数字和p-记法(C99) %c 一个字符 %d 有符号十进制整数 %e 浮点数.e-记数法 %E ...
- Oracle OEM
一.OEM是什么 Oracle Enterprise Manager(Oracle企业治理器,简称OEM)是通过一组Oracle程序,为治理分布式环境提供了治理服务. 二.配置OEM 三.启动OEM ...
- 【DFS】POJ 1321
POJ 1321 棋盘问题 题意:中文题不解释. 思路:经典DP,比较取巧的想法是一行行(按照题目意思一行最多只能放一个)来看,标记一列列.注意考虑到有些行可能不放的情况. /** Sample In ...
- 怎么取得dropdownlist选中的ID值
把数据库绑定在dropdownlist中,然后把选中的dropdownlist的项的ID值保存在另外的一个数据库中.怎么取得dropdownlist选中的ID值呢?? this.DropDownLis ...