封装post请求

封装post的请求

1、通过httpclient发送post请求进行连接

2、对于post请求,包含两个部分,url和要传的参数

3、url我们在测试的时候是知道的,关键是参数如何进行传输。对于post请求,我们使用NameValuePair类型进行传输。

4、释放连接

package test1;

import org.apache.http.NameValuePair;
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.testng.annotations.Test;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by daojia on 2017-6-20.
 * 模拟httpsend请求,传入的参数有url以及附带的参数,返回String类型
 */
public class httptest {
    public String send(String url,Map<String,String> map) throws IOException {
        String result = "";
        //创建httpclient对象
        CloseableHttpClient client = HttpClients.createDefault();
        //创建post请求对象
        HttpPost httpPost = new HttpPost(url);
        //装填参数
        List<NameValuePair> parm = new ArrayList<NameValuePair>();
        if(map != null)
        {
            for(Map.Entry<String,String> me : map.entrySet())
            {
                parm.add(new BasicNameValuePair(me.getKey(),me.getValue()));
            }
        }

        System.out.println("请求参数"+parm.toString());


        httpPost.setEntity(new UrlEncodedFormEntity(parm,"utf-8"));

        System.out.println("请求链接"+httpPost.toString());

        //执行请求
        CloseableHttpResponse response = client.execute(httpPost);
        result=response.toString();
        System.out.println("请求链接"+result);

     response.close();
return result; }

 

posted @ 2017-06-21 15:18  飞教主  阅读(2443)  评论(0编辑  收藏  举报