package com.test.demo;
import java.util.Date;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.httpclient.NameValuePair;
import com.ucee.test.app.WSClient;
public class Trackrectify {
private final static String BMAP_AK = "百度地图AK";
private final static String URL = "http://api.map.baidu.com/rectify/v1/track?";
public static void main(String[] args) {
NameValuePair[] data = new NameValuePair[2];
data[0] = new NameValuePair("ak", BMAP_AK);
data[1] = new NameValuePair("point_list", getReqData());
String resMsg = WSClient.httpPost(URL, data, "UTF-8");
System.out.println("纠偏返回数据:" + resMsg);
}
private static String getReqData() {
JSONArray reqArray = new JSONArray();
JSONObject obj = new JSONObject();
obj.put("latitude", "22.5687645");
obj.put("longitude", "113.9590789");
obj.put("coord_type_input", "bd09ll");
obj.put("loc_time", unixTime());
reqArray.add(obj);
return reqArray.toString();
}
/**
* 此处特别注意是unix时间
*/
public static long unixTime() {
return new Date().getTime() / 1000;
}
}
WSClient源码:
package com.ucee.test.app;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
public class WSClient {
/**
* 接收http post协议的信息
* @param url 请求地址
* @param data 表单参数
* @param encoding 编码
* @return 服务端返回信息
* @throws Exception
*/
public static String httpPost(String url,NameValuePair[] data,String encoding){
PostMethod hm = null;
InputStream is = null;
InputStreamReader isr = null;
BufferedReader br = null;
try{
MultiThreadedHttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager();
HttpClient hc = new HttpClient(connectionManager);
hc.getParams().setHttpElementCharset(encoding);
hm = new PostMethod(url);
hm.setRequestBody(data);
hm.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
hc.executeMethod(hm);
if(hm.getStatusCode()==200){
is = hm.getResponseBodyAsStream();
isr = new InputStreamReader(is,encoding);
br = new BufferedReader(isr);
String line="";
StringBuffer sb = new StringBuffer();
while((line=br.readLine())!=null){
sb.append(line);
}
return sb.toString();
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(null!=br){
br.close();
}
if(null!=isr){
isr.close();
}
if(null!=is){
is.close();
}
if(null!=hm){
hm.releaseConnection();
}
}catch(Exception e){
e.printStackTrace();
}
}
return null;
}
}
API文档地址:http://lbsyun.baidu.com/index.php?title=webapi/guide/trackrectify