OkHttpClient实现post请求,body传参,header携带参数
@RequestMapping("/getRongShiYunData")
public static Map getRongShiYunData(@RequestParam Map params) {
Map resultMap = new HashMap();
String url = "http://123.139.15.174:9090/v1/oas/token/get_token?app_key";
String app_key = "jaws0fefxreztuswepykgp0gypdwjb4l";
String app_secret = "rkmpw2narsdhaxbiuyukoiyf1mn71od0";
String data = "{\"app_key\":\"" + app_key + "\",\"app_secret\":\"" + app_secret + "\"}";
try {
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType=MediaType.parse("application/json");
RequestBody body=RequestBody.create(mediaType, data);
Request request=new Request.Builder().url(url).method("POST",body).addHeader("Content-Type","application/json").build();
Response response=client.newCall(request).execute();
ResponseBody resultBody = response.body();
String jsonStr = resultBody.string().replaceAll("^.*access_token\":\"(.*?)\".*$","$1");
System.out.println("access_token="+jsonStr);
resultMap.put("access_token",jsonStr);
} catch (IOException e) {
e.printStackTrace();
}
return resultMap;
}
@RequestMapping("/get_live_address")
public static Map get_live_address(@RequestParam Map params) {
Map resultMap = new HashMap();
String url = "http://123.139.15.174:9090/v1/oas/device/live/get_live_address";
String data = "{\"device_sn\":\"" + StringUtils.getStringByObj(params.get("device_sn")) + "\",\"channel_num\":\"0 \",\"stream_type\":\"0\",\"protocol\":\"hls\"}";
try {
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType=MediaType.parse("application/json");
RequestBody body=RequestBody.create(mediaType, data);
Request request=new Request.Builder().url(url).method("POST",body).addHeader("Content-Type","application/json").addHeader("x-Token",StringUtils.getStringByObj(params.get("access_token"))).build();
Response response=client.newCall(request).execute();
ResponseBody resultBody = response.body();
String urlStr = resultBody.string().replaceAll("^.*url\":\"(.*?)\".*$","$1");
System.out.println("url="+urlStr);
resultMap.put("url",urlStr);
} catch (IOException e) {
e.printStackTrace();
}
return resultMap;
}