HttpClient 实现POST请求

1 首先在POM文件中添加相应的依赖

<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.54</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.5</version>
</dependency>
</dependencies>

2 编写代码测试

package com.dbutils.http;

import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

public class HttpClientUtils {

	public static String doPost(URL url, Map<String,String> params, String charset){

        //新建HttpClient
        HttpClient client = HttpClients.createDefault();

        //创建HttpPost
        if(null == url || "".equals(url.toString())){
            return "url is not allow empty!";
        }
        HttpPost post = new HttpPost(url.toString());

        //添加参数
        List<NameValuePair> paraList = new ArrayList<NameValuePair>();
        Set<Map.Entry<String,String>> mapSet = params.entrySet();
        Iterator<Map.Entry<String,String>> iterator = mapSet.iterator();
        while(iterator.hasNext()){
            Map.Entry<String,String> elem =  iterator.next();
            paraList.add(new BasicNameValuePair(elem.getKey(),elem.getValue()));
        }

        //发起请求
        try{
            UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paraList,charset);
            
            post.setEntity(entity);

            //连接并获得返回
            HttpResponse response = client.execute(post);

            //处理返回数据
            if(null != response){
                Header[] headers = response.getAllHeaders();
                for(Header header : headers){
                    System.out.println(header.getName() + ":" + header.getValue());
                }
                HttpEntity responseEntity = response.getEntity();
                if(null != responseEntity){
                    //获得Http返回数据,并返回函数
                    return EntityUtils.toString(responseEntity,charset);
                }
            }

        }catch(Exception e){
            return "error" + e.getMessage();
        }
        return "";
    }
	
	public static void main(String[] args){
        try{
            URL url = new URL("http://localhost:8080");
            Map<String,String> paraMap = new HashMap<String, String>();
            paraMap.put("para1","TK20180529001");
            String value = HttpClientUtils.doPost(url,paraMap,"UTF-8");
            System.out.print(value);
        }catch(Exception e){}

    }
}

  

猜你喜欢

转载自www.cnblogs.com/dbqjava/p/9103769.html