Method 1: Transform the request parameters of the array type into String type
For example:
byte[] responseRes = OkhttpUtil.postForByteArray(url, desJsonData);
System.out.println("responseRes: " + responseRes);
String bytesStr = "";
for(int i=0; i<responseRes.length; i++) {
if(i == responseRes.length-1){
bytesStr = bytesStr + (byte) responseRes[i];
}else {
bytesStr = bytesStr + (byte) responseRes[i] + ",";
}
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("rpid", id);
jsonObject.put("rpversion", version);
jsonObject.put("bytes", bytesStr);
ApiResult responseRes2 = OkhttpUtil.postForPBDeSerializeForm(responseDeserializeUrlIP, jsonObject);
The third parameter bytes of the request interface is actually byte[] type, but we can pass it in the modified String type
public static ApiResult postForPBDeSerializeForm(String url, JSONObject requestParam){
System.out.println("postForPBDeSerializeForm接口");
ApiResult apiResult = new ApiResult();
try {
OkHttpClient client = new OkHttpClient();
FormBody.Builder formBodyBuilder = new FormBody.Builder();
formBodyBuilder.add("rpid", requestParam.getString("rpid"));
formBodyBuilder.add("rpversion", requestParam.getString("rpversion"));
formBodyBuilder.add("bytes", requestParam.getString("bytes"));
Request request = new Request.Builder()
.post(formBodyBuilder.build())
.url(url)
.build();
Response response = client.newCall(request).execute();
System.out.println("response.code():" + response.code() + " " + (response.code() == 200));
apiResult.setCode(response.code());
apiResult.setResult(response.body().string());
}catch (Exception e){
System.out.println("'sdew");
e.printStackTrace();
apiResult.setCode(400);
apiResult.setResult("请求异常");
}
return apiResult;
}
Method 2: Use the add method of FormBody.Builder
public static void test(String url, byte[] bytes){
try {
OkHttpClient client = new OkHttpClient();
FormBody.Builder formBodyBuilder = new FormBody.Builder();
formBodyBuilder.add("rpid", "1000019");
formBodyBuilder.add("rpversion", "5.0");
for(byte temp : bytes){
formBodyBuilder.add("bytes", temp + "");
}
Request request = new Request.Builder()
.post(formBodyBuilder.build())
.url(url)
.build();
Response response = client.newCall(request).execute();
System.out.println("response.code():" + response.code() + " " + (response.code() == 200));
System.out.println("响应反序列化结果:" + response.body().string());
}catch (Exception e){
System.out.println("'sdew");
e.printStackTrace();
}
}