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

摘要:
importorg.apache.commons.httpclient.HttpClient;importorg.apache.commons.httpclient.NameValuePair;importorg.apache.commons.httpclient.methods.PostMethod;importorg.apache.http.HttpEntity;importorg.apach
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();
        }
    }

 

免责声明:文章转载自《http接口 两种调用http接口的方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇PL/SQL 包头和包体Matplotlib基础--直方图,分桶和密度下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

三层架构下GridView控件实现增删改查

三层架构下GridView控件实现增删改查 转自:https://blog.csdn.net/iteye_3224/article/details/82373073 第一步:建立三层,并添加他们之间的引用关系,如下图所示: 第二步:添加GridView表格,并且套用格式样式,如下图所示: 第三步:点击表格右侧的小三角,并选中编辑列,如下图...

Python3.x:pdf2htmlEX(解析pdf)安装和使用

Python3.x:pdf2htmlEX(解析pdf)安装和使用 简介 pdf2htmlEX是一款优秀的pdf转换成html的工具; 下载 windows下载地址:http://soft.rubypdf.com/software/pdf2htmlex-windows-version 安装 下载pdf2htmlEX-win32-0.14.6-with-pop...

关于WinForm/Web如何使用缓存Cach

Cache 的绝对到期与滑动到期 绝对到期:设置绝对过期时间 到了指定时间以后会失效。(类似Cookie机制) 相对到期也称滑动到期:设置相对过期时间 指定时间内无访问会失效。(类似Session机制) HttpRuntime.Cache与HttpContext.Current.Cache 为同一个对象HttpRuntime.Cache.Add 存在相同...

Java 后端微信支付demo

Java 后端微信支付demo 一、导入微信SDK 二、在微信商户平台下载证书放在项目的resources目录下的cert文件夹下(cert文件夹需要自己建) 三、实现微信的WXPayConfig接口 1 packagecom.ieou.demo.common; 2 3 4 importcom.github.wxpay.sdk.WXPayCo...

Java中如何获取spring中配置文件.properties中属性值

通过spring配置properties文件 1 2 3 4 5 6 7 8 9 <bean id="propertyConfigurer" class="com.hapishop.util.ProjectDBinfoConfigurer"> <property name="ignoreResourceNotFound"value...

Delphi FTP例子源码

unit TransferThread; //////////////////////////////////////////////////////////////////////////////// // 模块说明: FTP传输核心模块类 // 功能: 指定一个下载(上传)的日期或文件名,系统执行传输功能(支持续传) // 备注:该模块属于传输类的一个...