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

百度地图 sn校验失败

时间:2022-06-06 15:17:39

相关推荐

百度地图 sn校验失败

http://api./geoconv/v1/?coords=114.21892734521,29.575429778924&from=1&to=5&ak=你的密钥 //GET请求

总是返回sn校验失败,原因是 coords的参数有逗号,在按照官方实例时,不能处理一种参数形式,那就是参数中不只有中文,还有其他特殊字符,比如逗号;就会导致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();}

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