使用 org.apache.http.client.HttpClient;
1.创建 httpClient实例
HttpClient httpClient = HttpClients.createDefault();
2.创建请求:
HttpPost post = new HttpPost("http://127.0.0.1:8077/test");
3.设置请求参数:
JSONObject requestJson = new JSONObject();
List<Integer> list = new ArrayList<>();
list.add(1138);
list.add(1137);
list.add(1136);
list.add(1135);
list.add(1128);
list.add(1125);
list.add(1124);
requestJson.put("orderIDList", list);
HttpEntity requestBodyEntity = new ByteArrayEntity(requestJson.toString().getBytes());
post.setEntity(requestBodyEntity);
4.发送请求
HttpResponse response = httpClient.execute(post);
String responseStr = EntityUtils.toString(response.getEntity());
请求中的实体参数如下:
image.png image.png
观察可以发现,params是没有任何值的,因为我们set 的是entity,content 和 b 的内容是一样的,
服务端接收到的参数
image.png
parameter没有值,预料之内,那我们传过来的entity在哪里呢?
getParameter获得的值为
image.png
解决思路:
1.getParameterNames是获取哪里的值?
2.如何在客户端设置该值?
1.parameter只能获取url后面拼接的参数,如果想要获取requestBody里面的值需要通过stream获取
2.如果直接修改post 的url 如下:
HttpPost post = new HttpPost("http://127.0.0.1:8077/test?test=1");
能够接收到存数,如果通过getParameterNames中获取则会隐藏在i(c)中,的确能在遍历中获取
网友评论