美文网首页
java发送请求-12-10

java发送请求-12-10

作者: 封_绝 | 来源:发表于2019-12-10 23:51 被阅读0次

使用 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)中,的确能在遍历中获取

相关文章

网友评论

      本文标题:java发送请求-12-10

      本文链接:https://www.haomeiwen.com/subject/asewgctx.html