接口自动化测试post以及get发送数据封装方法

package apitest_test;

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

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
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 HttpUtil {
    public static String result;
     public static String doPost(String url,Map<String, String>params) {

 //指定接口请求方式为
         HttpPost post=new HttpPost(url);
//         basicNameValuePair 用来封装post请求参数,一般都是用list集合,不用map
         List<BasicNameValuePair>  parameters=new ArrayList<BasicNameValuePair>();
//         取出map中所有的参数名
         Set<String>keys=params.keySet();
//         for循环取出所有map中的集合并将值放到list(BasicNameValuePair)集合中
         for(String name : keys) {
             String value=params.get(name);
             parameters.add(new BasicNameValuePair(name, value));
         }
         //准备请求头数据(如果有必要,比如cookie。centent-type等)
         post.addHeader("deviceId", "127.0.0.1");
         post.addHeader("deviceType", "TYPE_WECHAT");
         post.addHeader("user_token", "");
         post.addHeader("timestamp", "1619503923");
        System.out.println(url);
     //将数据放进接口里面设置编码
         try {
            post.setEntity( new UrlEncodedFormEntity(parameters, "utf-8"));
         

         //发起请求,获取接口响应信息(状态码,响应报文,或某些特殊响应头数据 )
             HttpClient client=HttpClients.createDefault();
             HttpResponse httpreponse=client.execute(post);
             //状态码
             int code=httpreponse.getStatusLine().getStatusCode();
             System.out.println(code);
             //响应报文
              result=EntityUtils.toString(httpreponse.getEntity());
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
            return result;
    }
     
     
//     建立get请求方式封装,可直接调用
   public static  String DoGet(String url,Map<String, String>parameter){
       int make=1;
//       循环定义url的值
       Set<String> keys=parameter.keySet();
       for(String name : keys) {
           if(make==1) {
               url+=("?"+name+"="+parameter.get(name));
           }
           else{
               url+=("&"+name+"="+parameter.get(name));

           }
           make++;
       }
//       请求接口的类型
        HttpGet get=new HttpGet(url);
        System.out.println(url);
//        发送请求
        HttpClient httpclient=HttpClients.createDefault();
//        拿到响应数据
        HttpResponse response;
        try {
            response = httpclient.execute(get);
//            响应数据的响应状态
            int code=response.getStatusLine().getStatusCode();
            System.out.println(code);
//            返回数据
             result=EntityUtils.toString(response.getEntity());
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
           return  result;
   }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值