最近开发的过程中遇到后台需要把参数拼接成json串的方式提交,之前都没遇到过类似的问题,都是直接提交,上网搜索大多都没有直接的答案,经过几天的研究之后,做出来了,特意把代码贴出来记录一下,希望可以帮到遇到相同问题的同道中人,下面就是代码:
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
JSONObject json = new JSONObject();
try {
json.put("Code", Code);
json.put("BoxCode", BoxCode);
json.put("PlateNumber", PlateNumber);
json.put("Driver", Driver);
json.put("ClientName", ClientName);
json.put("Sensors", Sensors);
} catch (JSONException e) {
e.printStackTrace();
}
//申明给服务端传递一个json串
下面是本人写的一个接口,完整代码贴出来参考一下:
new Thread() {
@Override
public void run() {
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
JSONObject json = new JSONObject();
try {
json.put("Code", Code);
json.put("BoxCode", BoxCode);
json.put("PlateNumber", PlateNumber);
json.put("Driver", Driver);
json.put("ClientName", ClientName);
json.put("Sensors", Sensors);
} catch (JSONException e) {
e.printStackTrace();
}
//申明给服务端传递一个json串
//创建一个OkHttpClient对象
OkHttpClient okHttpClient = new OkHttpClient();
//创建一个RequestBody(参数1:数据类型 参数2传递的json串)
//json为String类型的json数据
RequestBody requestBody = RequestBody.create(JSON, String.valueOf(json));
//创建一个请求对象
// String format = String.format(KeyPath.Path.head + KeyPath.Path.waybillinfosensor, username, key, current_timestamp);
String format = String.format("http://192.168.1.76:9299/api/iceplate/?BoxType=%s&Rfids=%s&api_key=&u=%s&key=%s&utc=%s", BoxType, Rfids, username, key, current_timestamp);
Request request = new Request.Builder()
.url(format)
.post(requestBody)
.build();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
//DialogUtils.showPopMsgInHandleThread(Release_Fragment.this.getContext(), mHandler, "数据获取失败,请重新尝试!");
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string = response.body().string();
if (string != null) {
try {
JSONObject jsonObject = new JSONObject(string);
int status = jsonObject.getInt("status");
if (status == 0) {
mHandler.post(new Runnable() {
@Override
public void run() {
data1.clear();
Toast.makeText(HomePager_Fragment.this.getContext(), "绑定成功!", Toast.LENGTH_SHORT).show();
}
});
} else if (status == -2) {
final String massage = jsonObject.getString("message");
mHandler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(HomePager_Fragment.this.getContext(), massage, Toast.LENGTH_SHORT).show();
}
});
}
} catch (JSONException e) {
}
}
}
});
}
}.start();
记录一下,方便下次开发,希望可以帮到需要的人。