Okhttp请求参数是数组类型时的请求方式 灰太狼 2022-10-23 12:39 131阅读 0赞 ## 方式一:将数组类型的请求参数,改造成String类型 ## 举例: 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); 请求接口的第三个参数bytes实际为byte\[\]类型,但是我们可以将其以改造后的String类型传递过去 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; } ## 方式二:使用FormBody.Builder的add方法 ## 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(); } }
相关 JMeter——请求参数类型 ![55e5fe11e9fd884bacef0476dbcb32cf.png][] ![3edb5f050ad16937c8af210984f47990.png][] ![ ゞ 浴缸里的玫瑰/ 2023年10月03日 17:18/ 0 赞/ 5 阅读
相关 vue项目中GET请求传数组类型参数 在AJAX异步请求为GET方式时,如果需要传递到后台的参数是数组类型,直接通过query的方式会有问题,参数在URL上的展示形式如下: 参数:\{name:\ 偏执的太偏执、/ 2022年12月10日 05:57/ 0 赞/ 179 阅读
相关 MyBatis当多个请求参数时处理方式 通过Map 例如我们要查询username和password为root的用户信息 List<User> getUserByNameAndPassword(Map 谁践踏了优雅/ 2022年12月06日 04:30/ 0 赞/ 134 阅读
相关 OKHttp3请求超时,connectionPool请求超时 今天在使用OKhttp3时,发现请求一直超时,但我通过代理发现有请求返回时。初始化代码如下: private OkHttpClient httpClient; pr 不念不忘少年蓝@/ 2022年11月18日 04:57/ 0 赞/ 508 阅读
相关 Okhttp请求参数是数组类型时的请求方式 方式一:将数组类型的请求参数,改造成String类型 举例: byte[] responseRes = OkhttpUtil.postForByteArray( 灰太狼/ 2022年10月23日 12:39/ 0 赞/ 132 阅读
相关 html如何get请求参数传递数组,get请求如何传递数组参数 问题 当我们需要通过get方式传递一个数组作为参数 tag:\[1,2,3,4\] 解决方案 01. 自己处理 // 编辑-(批量)移除测试用例 const delT 古城微笑少年丶/ 2022年10月09日 00:51/ 0 赞/ 402 阅读
相关 okhttp请求Demo 利用okhttp,通过http协议请求。写下此笔记,记录常用的请求方法,如get,post请求方法,以及表单提交,文件上传,xml请求soap协议的webservice等等,具 川长思鸟来/ 2022年08月20日 11:26/ 0 赞/ 181 阅读
相关 springMVC请求参数接收方式 SpringMVC请求参数后台获取方法 1、@ModelAttribute 获取POST请求中 「爱情、让人受尽委屈。」/ 2022年08月18日 13:25/ 0 赞/ 249 阅读
相关 Axios 各种请求方式传递参数(非axios api 请求方式) `get` `delete` 方法较为不同 get请求方式将需要入参的数据作为 `params` 属性的值,最后整体作为参数传递 delete请求方式将将需要入参的数 桃扇骨/ 2021年12月03日 10:49/ 0 赞/ 328 阅读
还没有评论,来说两句吧...