`

JAVA利用HttpClient进行POST请求(HTTPS)

    博客分类:
  • java
 
阅读更多

1.写一个SSLClient类,继承至HttpClient

import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;

import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;  
//用于进行Https请求的HttpClient  
public class SSLClient extends DefaultHttpClient{

	public SSLClient() throws Exception{  
        super();  
        SSLContext ctx = SSLContext.getInstance("TLS");  
        X509TrustManager tm = new X509TrustManager() {  
                @Override  
                public void checkClientTrusted(X509Certificate[] chain,  
                        String authType) throws CertificateException {  
                }  
                @Override  
                public void checkServerTrusted(X509Certificate[] chain,  
                        String authType) throws CertificateException {  
                }  
                @Override  
                public X509Certificate[] getAcceptedIssuers() {  
                    return null;  
                }  
        };  
        ctx.init(null, new TrustManager[]{tm}, null);  
        SSLSocketFactory ssf = new SSLSocketFactory(ctx,SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);  
        ClientConnectionManager ccm = this.getConnectionManager();  
        SchemeRegistry sr = ccm.getSchemeRegistry();  
        sr.register(new Scheme("https", 543, ssf));  
    }  
}

 2.写一个利用HttpClient发送post请求的类

import java.util.ArrayList;  
import java.util.Iterator;  
import java.util.List;  
import java.util.Map;  
import java.util.Map.Entry;  
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.message.BasicNameValuePair;  
import org.apache.http.util.EntityUtils;  
/* 
 * 利用HttpClient进行post请求的工具类 
 */
public class HttpClientUtil {
	public String doPost(String url,Map<String,String> map,String charset){  
        HttpClient httpClient = null;  
        HttpPost httpPost = null;  
        String result = null;  
        try{  
            httpClient = new SSLClient();  
            httpPost = new HttpPost(url);  
            //设置参数  
            List<NameValuePair> list = new ArrayList<NameValuePair>();  
            Iterator iterator = map.entrySet().iterator();  
            while(iterator.hasNext()){  
                Entry<String,String> elem = (Entry<String, String>) iterator.next();  
                list.add(new BasicNameValuePair(elem.getKey(),elem.getValue()));  
            }  
            if(list.size() > 0){  
                UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list,charset);  
                httpPost.setEntity(entity);  
            }  
            HttpResponse response = httpClient.execute(httpPost);  
            if(response != null){  
                HttpEntity resEntity = response.getEntity();  
                if(resEntity != null){  
                    result = EntityUtils.toString(resEntity,charset);  
                }  
            }  
        }catch(Exception ex){  
            ex.printStackTrace();  
        }  
        return result;  
    }  
}

 3.调用post请求的测试代码

import java.util.HashMap;
import java.util.Map;
//对接口进行测试  
public class HttpsPost {
	public static void main(String[] args){
		String url = "https://localhost:8080/test.jsp";
	    String charset = "utf-8";  
	    HttpClientUtil httpClientUtil = new HttpClientUtil();  
//        String httpOrgCreateTest = url + "httpOrg/create";  
        Map<String,String> createMap = new HashMap<String,String>();  
        createMap.put("authuser","*****");  
        createMap.put("authpass","*****");  
        createMap.put("orgkey","****");  
        createMap.put("orgname","****");  
//        String result = httpClientUtil.doPost(httpOrgCreateTest,createMap,charset);  
        String result = httpClientUtil.doPost(url,createMap,charset);  
        System.out.println("result:"+result);  
	}
}

 

分享到:
评论

相关推荐

    (完整版)JAVA利用HttpClient进行POST请求(HTTPS).doc

    "JAVA利用HttpClient进行POST请求(HTTPS)" JAVA HttpClient是Apache软件基金会提供的一个开源实现HTTP客户端的Java库,能够帮助开发者轻松地与HTTP服务器进行交互。在实际项目中,我们经常需要使用HttpClient来发送...

    JAVA利用HttpClient进行POST请求(HTTPS)实例

    接下来,我们需要编写一个类来利用HttpClient发送POST请求。这个类可以接收参数,如URL、请求头和请求体,然后使用HttpClient发送POST请求。以下是一个简单的示例: ```java import org.apache.http.HttpEntity; ...

    JAVA利用HttpClient进行HTTPS接口调用

    总的来说,使用Java的HttpClient进行HTTPS接口调用涉及到配置SSL上下文、初始化HttpClient、创建请求对象以及处理响应。了解这些知识点对于开发安全的、能够与HTTPS服务进行通信的Java应用程序至关重要。通过实践和...

    java HttpClient 发送GET请求和带有表单参数的POST请求教程例子

    ### Java HttpClient 发送GET请求和带有表单参数的POST请求详解 #### 一、概述 在Java编程中,处理HTTP请求是一项常见的需求,特别是在与Web服务进行交互时。Apache HttpClient库提供了一种强大的方法来执行HTTP...

    httpclient发送post请求

    而"httpclient-demo"项目则是一个客户端应用,它的任务是利用Apache HttpClient库来构建和发送POST请求到"post-demo"项目提供的接口。HttpClient库提供了丰富的API,允许开发者灵活地设置请求头、主体内容、超时等...

    java使用httpclient发送post请求示例

    Java 使用 HttpClient 发送 POST 请求是网络编程中常见的任务,尤其在与 Web 服务进行交互时。Apache HttpClient 是一个强大的库,允许 Java 开发者轻松地执行 HTTP 请求。在这个示例中,我们将深入探讨如何使用 ...

    JAVA利用HttpClient进行HTTPS接口调用的方法

    "JAVA利用HttpClient进行HTTPS接口调用的方法" 知识点1:HttpClient的基本概念 HttpClient是一个开放源代码的Java库,用于提供高效、灵活和可扩展的HTTP客户端解决方案。HttpClient支持HTTP/1.1和HTTP/2.0协议,...

    java使用HttpClient发送http请求

    对于POST请求,你需要创建一个HttpPost对象,并设置请求体: ```java HttpPost httpPost = new HttpPost("http://example.com"); List&lt;NameValuePair&gt; params = new ArrayList(); params.add(new ...

    HttpClient发送post请求传输json数据

    总结一下,HttpClient是Java中用于HTTP通信的强大工具,能够方便地发送POST请求并携带JSON数据。通过创建HttpClient对象、设置请求方法、构造HTTP实体、添加请求头以及处理响应,我们可以实现与服务器的高效交互。在...

    HttpClient发送http请求(post+get)需要的jar包+内符java代码案例+注解详解

    以下是一个使用HttpClient发送POST请求的Java代码示例: ```java import org.apache.http.HttpEntity; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import...

    java实现httpget和httppost请求httpclient-4.3.1.jar包

    利用httpclient-4.3.1.jar、httpcore-4.3.jar包,很简单的用java实现httpget和httppost请求。

    Java使用HttpClient实现Post请求实例

    首先,我们来看一下使用HttpClient进行POST请求的关键步骤。 1. 引入依赖: 为了使用HttpClient,我们需要引入Apache HttpClient和HttpCore的相关依赖。在示例代码中,使用的版本是4.2.5,但请注意,可能需要根据...

    HttpClient发送http请求(post和get)需要的jar包+内符java代码案例+注解详解

    3. **HttpClient POST请求**: POST请求常用于向服务器提交数据。下面是一个POST请求的例子,包括设置请求头和请求体: ```java import org.apache.http.HttpEntity; import org.apache....

    java支持https的Post请求

    在Java编程环境中,进行HTTPS POST请求是常见的网络通信任务,特别是在需要安全传输敏感数据时,如用户登录信息或支付详情。HTTPS(HTTP over SSL/TLS)提供了加密和身份验证机制,确保了数据的隐私和完整性。本文将...

    JAVA发送HttpClient请求及接收请求完整代码实例

    这个类可能包含发送GET、POST请求的方法,以及其他辅助功能,如处理超时、重试策略等。 ```java public class HttpClientUtil { public static String sendGetRequest(String url) { // 实现GET请求逻辑 } ...

    Java 使用HttpClient保持SESSION状态

    在Java编程中,HttpClient是一个强大的库,用于执行HTTP请求,特别是在需要进行复杂的HTTP操作或大量HTTP请求时。在处理Web应用程序时,有时我们需要保持用户的登录状态,即SESSION状态。这通常涉及到Cookie管理,...

    java发送http/https请求(get/post)代码

    本文将详细讲解如何使用Java发送GET和POST请求,以及涉及的HTTPS安全连接。 首先,理解HTTP和HTTPS的区别至关重要。HTTP(超文本传输协议)是一种用于分发超媒体信息的应用层协议,而HTTPS(超文本传输安全协议)是...

    httpclient发送post请求.docx

    在本文中,我们将深入探讨如何使用HttpClient发送POST请求,以及处理JSON参数和其他关键点。 1. 创建HttpClient实例: HttpClient的初始化通常涉及构建一个HttpClientBuilder对象,然后调用其build()方法来创建...

    httpclient post方式发送请求

    接下来,我们将探讨如何使用HTTPClient发送POST请求并附带JSON数据。首先,你需要创建一个`CloseableHttpClient`实例,然后使用`HttpPost`对象来指定请求URL。在POST请求中,我们将使用`EntityBuilder`来构建包含...

Global site tag (gtag.js) - Google Analytics