接口 两种调用http接口的方法

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.entity.UrlEncodedFormEntity;
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.protocol.HTTP;
import org.apache.http.util.EntityUtils;
   
   /*
      第一种:httpClient 方式
      所需jar包: commons-httpclient-3.0.1.jar  及其他依赖jar包
    */
   public static void sendPostRequest1(Map<String,String> paramMap,String REQUEST_URL)
    {
        try {
            HttpClient httpclient = new HttpClient();
            httpclient.getParams().setHttpElementCharset("utf-8");
            httpclient.getParams().setContentCharset("utf-8");
            httpclient.getParams().setSoTimeout(10000);

            PostMethod post=new PostMethod(REQUEST_URL);
			//参数数组
            NameValuePair[] params=new NameValuePair[paramMap.size()];

            int index=0;
            for(String key : paramMap.keySet())
            {
                String value=paramMap.get(key);
                NameValuePair n=new NameValuePair(key,value);
                params[index]=n;
                index++;
            }
            /*
              另一种添加参数的方法:
              post.addParameter(key, value);
            */
            //设置请求参数
            post.setRequestBody(params);
			//开始请求
            httpclient.executeMethod(post);

			// 判断请求响应状态码,状态码为200表示服务端成功响应了客户端的请求 
            if(post.getStatusCode()==200)
	        {
				//获取返回消息字符串
			    String str=post.getResponseBodyAsString();
			    System.out.println(str);
	        }
           
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


   /*
      第二种:HttpPost 方式
      所需jar包: httpclient-4.3.5.jar、httpcore-4.3.2.jar  及其他依赖jar包
    */
    public static void sendPostRequest2(Map<String,String> paramMap,String REQUEST_URL)
    {
        try {

            CloseableHttpClient httpclient = HttpClients.createDefault();
            HttpPost httpPost = new HttpPost(REQUEST_URL);
            //设置请求和传输超时时间
			RequestConfig config=RequestConfig.custom().setSocketTimeout(5000).setConnectTimeout(5000).build();
			httpPost.setConfig(config);
            List<org.apache.http.NameValuePair> list=new ArrayList<org.apache.http.NameValuePair>();
            for(String key : paramMap.keySet())
            {
                String value=paramMap.get(key);
                BasicNameValuePair  n=new BasicNameValuePair(key,value);
                list.add(n);
           
            }
			//设置参数
            HttpEntity httpEntity=new UrlEncodedFormEntity(list,HTTP.UTF_8);
            httpPost.setEntity(httpEntity);
			//开始请求
            HttpResponse response=httpclient.execute(httpPost);

			// 判断请求响应状态码,状态码为200表示服务端成功响应了客户端的请求 
            if(response.getStatusLine().getStatusCode()==200)
            {
				//获取返回消息字符串
                String result=EntityUtils.toString(response.getEntity());
               
                System.out.println(result);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值