1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 百度地图api location 211 sn校验失败

百度地图api location 211 sn校验失败

时间:2021-02-25 08:29:46

相关推荐

百度地图api location 211 sn校验失败

独角兽企业重金招聘Python工程师标准>>>

http://api./geocoder/v2/?location=22.528212,113.934891&output=json&ak=9pZtx5lBSgHltLoktHVSSvH0yYiBs06S&sn=8b6d4bda16818c4a1e358b94e2cdce5e

总是返回sn校验失败,原因是 location的参数有逗号,在按照官方实例时,不能处理一种参数形式,那就是参数中不只有中文,还有其他特殊字符,比如逗号;就会导致sn错误

/ 对url内参数的所有value作utf8编码,拼接返回结果 public String toQueryString(Map<?, ?> data) throws UnsupportedEncodingException {StringBuffer queryString = new StringBuffer();for (Entry<?, ?> pair : data.entrySet()) {queryString.append(pair.getKey() + "="); queryString.append(URLEncoder.encode((String) pair.getValue(), "UTF-8") + "&");}if (queryString.length() > 0) {queryString.deleteCharAt(queryString.length() - 1);}return queryString.toString(); }

解决方法 改下toQueryString

//针对location参数的改进public String toQueryString(Map<?, ?> data) throws UnsupportedEncodingException {StringBuffer queryString = new StringBuffer();for (Entry<?, ?> pair : data.entrySet()) {queryString.append(pair.getKey() + "="); String ss[] = pair.getValue().toString().split(","); if(ss.length>1){for(String s:ss){queryString.append(URLEncoder.encode(s,"UTF-8") + ",");}queryString.deleteCharAt(queryString.length()-1); queryString.append("&"); } else{queryString.append(URLEncoder.encode((String) pair.getValue(), "UTF-8") + "&"); }}if (queryString.length() > 0) {queryString.deleteCharAt(queryString.length() - 1);}return queryString.toString(); }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。