发送post请求,body请求体常见的三种格式

body请求体常见的三种格式:1)x-www-form-urlencoded,   2)form data,    3)json格式

@RequestParam可以用来接收请求url?后面的参数,或者Content-Type为multipart/form-data、application/x-www-form-urlencoded时的http body数据

 1)form-data(带文件的表单)
form-data主要是上传文件的一种格式, 可以同时上传多个文件,如果想要在form表单中上传文件的话,需要在form中将编码格式更改:enctype="multipart/form-data"
比如:<form  action=""   method="post"   enctype="multipart/form-data" ></form>
后端接收方式为:
   public  String  aa(String aa,MultipartFile  file)           //直接接收

   public  String  aa(User user)                    //也可以通过请求体进行接收  
    




2) x-www-form-urlencoded(普通表单)
   这种格式会将表单中的数据转换成键值对,也是form表单的post请求默认发送格式,比如:name=zhan&age=12&sex=男
后端接收方式为:
   public  String  aa(String  name,String age,String sex)        //也可以直接进行接收

     public  String  aa(User user)                    //也可以通过请求体进行接收  




总结:
   a)上面这两个编码类型的表单数据,你可以将它想象成是放在body请求体中的get参数就可以了,
   该参数虽然是放在请求体中的,但是你可以直接像是对待请求路径中的参数形式来对待它们
   请求路径参数为:localhost/aa?name=zhan&sex=男
        

    
  b)x-www-form-urlencoded只能上传普通表单,对于带有文件的表单不能上传,需要重新设置编码格式enctype=" multipart/form-data"





3) json
  这种格式表示上传文本,可以上传text,json,xml,html等
一般通过axios发送post请求的时候,都会将请求参数转换成json文本,
在日常使用中,我们一般发送post请求,都是发送这种json格式的数据
后端接收方式为:
      public  String  aa(@RequestBody   User user)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: HttpClient发送POST请求时,可以通过设置请求body)来传递参数或数据。具步骤如下: 1. 创建HttpClient对象 ``` CloseableHttpClient httpClient = HttpClients.createDefault(); ``` 2. 创建HttpPost对象,并设置请求URL ``` HttpPost httpPost = new HttpPost("http://example.com/api"); ``` 3. 创建请求body),并设置请求头 ``` String requestBody = "{\"name\":\"John\", \"age\":30}"; StringEntity entity = new StringEntity(requestBody, ContentType.APPLICATION_JSON); httpPost.setEntity(entity); ``` 4. 发送请求,并获取响应 ``` CloseableHttpResponse response = httpClient.execute(httpPost); ``` 5. 处理响应 ``` HttpEntity responseEntity = response.getEntity(); String responseBody = EntityUtils.toString(responseEntity); System.out.println(responseBody); ``` 以上就是使用HttpClient发送POST请求并设置请求的基本步骤。需要注意的是,请求格式和内容应该根据API文档或接口规范进行设置。 ### 回答2: HttpClient是一个开源的Java HTTP客户端工具包,可以用来发送HTTP请求。在发送POST请求时,我们需要往请求中添加参数,这就需要用到HttpClient发送POST请求body。 HttpClient发送POST请求有两种方法:使用NameValuePair键值对和使用字符串。两种方法的使用取决于请求的内容。如果是简单的键值对,可以使用NameValuePair键值对;如果请求内容较为复杂,需要包含一些json格式的数据,那么就需要使用字符串的方式。 使用NameValuePair键值对发送POST请求: NameValuePair是一种存储参数的方法,我们可以通过NameValuePair将参数键值对添加到请求中,代码示例如下: ``` // 创建一个 HttpClient 客户端 CloseableHttpClient httpClient = HttpClients.createDefault(); // 设置请求地址 HttpPost httpPost = new HttpPost("http://localhost:8080/test"); // 设置请求头部信息 httpPost.setHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8"); // 设置请求参数 List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("username", "admin")); params.add(new BasicNameValuePair("password", "admin")); // 设置请求 httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); // 执行请求并获取响应 CloseableHttpResponse response = httpClient.execute(httpPost); // 获取响应消息实 HttpEntity responseEntity = response.getEntity(); // 打印响应内容 System.out.println(EntityUtils.toString(responseEntity)); // 关闭响应对象 response.close(); // 关闭客户端对象 httpClient.close(); ``` 使用字符串发送POST请求发送POST请求时,我们可以将请求中需要传递的json对象转换成字符串形式,然后将该字符串作为请求发送。代码示例如下: ``` // 创建一个 HttpClient 客户端 CloseableHttpClient client = HttpClients.createDefault(); // 设置请求地址 HttpPost post = new HttpPost("http://localhost:8080/test"); // 设置请求头部信息 post.setHeader("Content-Type", "application/json; charset=utf-8"); // 设置请求 StringEntity entity = new StringEntity("{\"username\":\"admin\",\"password\":\"admin\"}", "UTF-8"); post.setEntity(entity); // 执行请求并获取响应 CloseableHttpResponse response = client.execute(post); // 获取响应消息实 HttpEntity responseEntity = response.getEntity(); // 打印响应内容 System.out.println(EntityUtils.toString(responseEntity)); // 关闭响应对象 response.close(); // 关闭客户端对象 client.close(); ``` 以上就是使用HttpClient发送POST请求body的方法,通过该方法可以方便地处理POST请求,以此实现数据的传输和接收。需要注意的是,在发送POST请求的同时需注意设置请求头请求的信息,以便正确地传输请求。 ### 回答3: HttpClient是Java语言中一个方便的开源HTTP客户端库,用于https请求。它能够实现快速,自由,轻松的实现HTTP请求,可以支持Get、Post、Put、Delete、Head等方法。而POST请求常用于客户端提交数据给服务器端,接着进行处理,故HttpClient中发送POST请求是非常重要的。 使用HttpClient发送POST请求主要涉及以下几个方面: 1.构建HttpClient对象:可通过HttpClients.createDefault()方法来创建一个默认的HttpClient实例。 2.构建HttpPost对象:可通过HttpPost(String url)方法来构建一个HttpPost请求实例。 3.构建Post请求参数:至少需要设置请求请求参数。 4.设置请求头:可通过setHeader()方法增加请求头信息,如设置Content-Type和User-Agent等信息。 5.设置请求:可通过setEntity()方法设置请求,向服务端传递数据,请求参数类型可为String、ByteArrayEntity、InputStreamEntity、FileEntity等。 6.发送Post请求:可通过提交HttpPost请求来实现向服务端发送POST请求。 以下是HttpClient发送Post请求代码示例: ``` try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpPost httpPost = new HttpPost("http://www.xxx.com/post"); httpPost.setHeader("Content-Type", "application/json"); StringEntity stringEntity = new StringEntity("{\"name\":\"test\", \"age\":18}"); httpPost.setEntity(stringEntity); CloseableHttpResponse httpResponse = httpClient.execute(httpPost); String responseContent = EntityUtils.toString(httpResponse.getEntity(), "UTF-8"); System.out.println("responseContent: " + responseContent); } catch (Exception e) { e.printStackTrace(); } ``` 该示例中通过HttpPost(String url)方法构建HttpPost请求实例,并设置请求头信息,如Content-Type和User-Agent等。然后通过StringEntity(String str)方法将JSON格式请求参数字符串设置到请求中。最后通过httpClient.execute(httpPost)方法提交HttpPost请求,接收服务端返回的HttpResponse响应实例,并通过EntityUtils.toString()方法获取响应内容。 总结:HttpClient发送POST请求主要是通过构建HttpPost实例对象,设置请求头请求参数,最后提交HttpPost请求向服务器发送POST请求,可以方便的实现与服务端的数据交互。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值