JAVA携带参数(带有请求参数,请求头参数)直接发送POST请求
阅读原文时间:2023年07月10日阅读:1

org.apache.httpcomponents httpclient 4.3.3

package com.test;

import org.apache.http.HttpEntity;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

import java.util.ArrayList;
import java.util.List;

public class Test {
public static void main(String[] args) {
sendPost();
}

public static void sendPost(){  
    String value="12222";

    //创建post请求对象  
    HttpPost post = new HttpPost("http://localhost:8080/test");  
    try {  
        //创建参数集合  
        List<BasicNameValuePair> list = new ArrayList<BasicNameValuePair>();  
        //添加参数  
        list.add(new BasicNameValuePair("key", value));  
        list.add(new BasicNameValuePair("releaseDate","2020-07-14 09:55:20"));  
        //把参数放入请求对象,,post发送的参数list,指定格式  
        post.setEntity(new UrlEncodedFormEntity(list, "UTF-8"));  
        //添加请求头参数  
        post.addHeader("timestamp","1594695607545");  
        CloseableHttpClient client = HttpClients.createDefault();  
        //启动执行请求,并获得返回值  
        CloseableHttpResponse response = client.execute(post);  
        //得到返回的entity对象  
        HttpEntity entity = response.getEntity();  
        //把实体对象转换为string  
        String result = EntityUtils.toString(entity, "UTF-8");  
        //返回内容  
        System.out.println(result);  
    } catch (Exception e1) {  
        e1.printStackTrace();

    }  
}  

}

下面是把方法进行了封装

/**
*
* 发送请求
* @param url 发送的url
* @param headerMap 请求头参数集合 key参数名 value为参数值
* @param bodyMap 请求参数集合 key参数名 value为参数值
*/
public static String sendPost(String url, Map headerMap,Map bodyMap){

    //创建post请求对象  
    HttpPost post = new HttpPost(url);  
    try {  
        //创建参数集合  
        List<BasicNameValuePair> list = new ArrayList<BasicNameValuePair>();  
        //添加参数  
        if (bodyMap!=null){  
            for (String str:bodyMap.keySet()  
            ) {  
                list.add(new BasicNameValuePair(str, bodyMap.get(str)));  
            }  
        }  
        //把参数放入请求对象,,post发送的参数list,指定格式  
        post.setEntity(new UrlEncodedFormEntity(list, "UTF-8"));

        if (headerMap!=null){  
            for (String str:headerMap.keySet()  
                 ) {  
                post.addHeader(str,headerMap.get(str));  
            }  
        }

        CloseableHttpClient client = HttpClients.createDefault();  
        //启动执行请求,并获得返回值  
        CloseableHttpResponse response = client.execute(post);  
        //得到返回的entity对象  
        HttpEntity entity = response.getEntity();  
        //把实体对象转换为string  
        String result = EntityUtils.toString(entity, "UTF-8");  
        //返回内容  
        return result;  
    } catch (Exception e1) {  
        e1.printStackTrace();  
        return "";

    }  
}