使用okhttp发送json数据和上传文件到接口
【代码】使用okhttp发送json数据到接口。
·
发送json数据的代码如下:
public static void sendRequestWithOkHttp(List<Long>time,List<Float> x,List<Float> y,List<Float> z) {
new Thread(new Runnable() {
@Override
public void run() {
List<JSONObject> mList = new ArrayList<>();
try {
for (int i = 0; i < time.size(); i++) {
JSONObject obj = new JSONObject();
obj.put("accelerationX", x.get(i));
obj.put("accelerationY",y.get(i));
obj.put("accelerationZ",z.get(i));
obj.put("timestamp",time.get(i));
mList.add(obj);
}
} catch (JSONException e) {
}
// System.out.println(obj);
MediaType type = MediaType.parse("application/json;charset=utf-8");
RequestBody RequestBody2 = RequestBody.create(type,mList.toString());
try {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
// 指定访问的服务器地址
.url("https://www.httpbin.org/post").post(RequestBody2)
.build();
Response response = client.newCall(request).execute();
String responseData = response.body().string();
System.out.println(responseData);
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
json数据格式为:

上传文件:
public void upload() {
new Thread(){
@Override
public void run() {
File file = new File("/mnt/sdcard/加速度数据");
MultipartBody multipartBody = new MultipartBody.Builder()
.addFormDataPart("加速度数据",file.getName(), RequestBody.create(file, MediaType.parse("text/plain")))
.build();
Request request = new Request.Builder().url("https://www.httpbin.org/post").post(multipartBody).build();
Call call = mOkHttpClient.newCall(request);
try {
Response response = call.execute();
Log.i(TAG, "upload: "+response.body().string());
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)