起因
之前在做的项目中需要对接一个智能床垫设备.设备使用SmartLink技术连接WIFI,然后APP需要从设备厂商的服务器中获取需要的数据,也就是调用设备厂商服务器的接口.
初拿到接口文档,看到接口需要的是JSON数据时,都不知道是个什么东西(基础太差).后来才总算明白,原来就像是上传文件一样的,只不过是上传文件是流,而JSON请求是JSON字符串而已.
操作
- 获取MediaType对象,MINI类型为application/json,字符集为utf-8.
- 通过RequestBody.create()方法创建JSON请求主体.
- 创建请求对象,需要往请求头里添加参数也是在这里添加.
- 执行请求.完成.
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
//创建一个OkHttpClient对象
OkHttpClient okHttpClient = new OkHttpClient();
//创建一个RequestBody(参数1:数据类型 参数2传递的json串)
RequestBody requestBody = RequestBody.create(JSON, json);
//创建一个请求对象
Request request = new Request.Builder()
.url(url)
.addHeader("v", "1.6")
.post(requestBody)
.build();
//发送请求获取响应
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onResponse(Call arg0, Response response) throws IOException {
// 判断请求是否成功
if(response.isSuccessful()){
String ret = response.body().string();
//打印服务端返回结果
Log.i("mo--",ret);
}
}
@Override
public void onFailure(Call arg0, IOException arg1) {
// 请求失败
Log.i("mo--",arg1.getMessage());
arg1.printStackTrace();
}
});
Comments | NOTHING