发送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();
}