//設定格式以及字元編碼
private static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
/**
* @Description: 擷取抓拍機清單
* @param boxIP 調用伺服器的ip位址
* @param port 調用伺服器的端口号
* @param jsonStr 發送的資料
* @param requestHead 請求頭
* @return:
* @Author: liujianhua
* @Date: 18:47
*/
//比如:http://192.168.88.133:8080/api/selectById
//同:http://boxIP:port/requestHead
public static String postJsonHTTP(String boxIP,String port ,String jsonStr,String requestHead) throws IOException {
String url = "http://"+boxIP+":"+port+"/"+requestHead;
OkHttpClient okHttpClient = new OkHttpClient.Builder().readTimeout(30, TimeUnit.SECONDS).build();
RequestBody requestBody = RequestBody.create(JSON, jsonStr);
Request.Builder builder = new Request.Builder();
final Request request = builder.url(url).post(requestBody).build();
final Call call = okHttpClient.newCall(request);
Response response;
response = call.execute();
return response.body().string();
}
如何調用
public List<Map> requestCameraList() throws Exception{
String boxIP = "192.168.88.133";
String port = "8080";
//将資料存放到map中
Map requestMap = new HashMap();
requestMap.put("Name","SubDevicesManageRequest");
//下面将map轉為json
String ret = postJsonHTTP(boxIP, port, gson.toJson(requestMap),LOADBAIDUCAMERA);
//将收到的資料轉為map格式
HashMap retMap = gson.fromJson(ret, HashMap.class);
System.err.println(retMap);
return cameraListMap;
}