Java 使用 HttpClient 发送 Post请求(http与https) 小咪咪 2022-04-08 11:46 312阅读 0赞 发送 http 请求 **发送 http 请求 ** package com.zealotpz.demo; import org.apache.http.HttpEntity; import org.apache.http.NameValuePair; import org.apache.http.client.config.RequestConfig; 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.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; import java.util.ArrayList; import java.util.List; import java.util.Map; public class HttpClientTest { //设置链接超时和请求超时等参数,否则会长期停止或者崩溃 private static RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(60000).setConnectTimeout(60000).setConnectionRequestTimeout(60000).build(); public static String sendPost(String url, Map<String, String> params) { String responseContent = null; try { //建立HttpPost对象 HttpPost httpPost = new HttpPost(url); //建立一个NameValuePair数组,用于存储欲传送的参数 List<NameValuePair> nvps = new ArrayList<NameValuePair>(); //遍历参数 map,添加参数 for (String key : params.keySet()) { nvps.add(new BasicNameValuePair(key, params.get(key))); } //参数集合传入到一个UrlEncodedFormEntity中并设置编码 httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); CloseableHttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(requestConfig).build(); //发送Post,并返回一个HttpResponse对象 CloseableHttpResponse httpResponse = httpClient.execute(httpPost); //使用响应对象获取响应实 HttpEntity httpEntity = httpResponse.getEntity(); if (httpEntity != null) { //将响应实体转为字符串 responseContent = EntityUtils.toString(httpEntity, "UTF-8"); } } catch (Exception e) { e.printStackTrace(); } //返回应答字符串 return responseContent; } -------------------- 发送 https 请求 **发送 https 请求 ** package com.zealotpz.demo; import org.apache.http.HttpEntity; import org.apache.http.NameValuePair; import org.apache.http.client.config.RequestConfig; 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.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.conn.ssl.SSLContextBuilder; import org.apache.http.conn.ssl.TrustStrategy; import org.apache.http.conn.ssl.X509HostnameVerifier; 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; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLException; import javax.net.ssl.SSLSession; import javax.net.ssl.SSLSocket; import java.io.IOException; import java.security.GeneralSecurityException; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * Created by zealotpz on 2017/2/9. */ public class HttpClientTest { //设置链接超时和请求超时等参数,否则会长期停止或者崩溃 private static RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(60000).setConnectTimeout(60000).setConnectionRequestTimeout(60000).build(); public static String sendHttpsPost(String url, Map<String, String> params) { String responseContent = null; try { HttpPost httpPost = new HttpPost(url); List<NameValuePair> nvps = new ArrayList<NameValuePair>(); for (String key : params.keySet()) { nvps.add(new BasicNameValuePair(key, params.get(key))); } httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); httpPost.addHeader("Content-Type", "application/json; charset=UTF-8");//修改请求头 // httpPost.setEntity(new StringEntity(JacksonUtils.toJson(encrypt),"UTF-8"));//传递json数据对象encrypt为自己创建的Dto对象 CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(createSSLConnSocketFactory()).setDefaultRequestConfig(requestConfig).build(); CloseableHttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); if (httpEntity != null) { responseContent = EntityUtils.toString(httpEntity, HTTP.UTF_8); } } catch (Exception e) { e.printStackTrace(); } return responseContent; } -------------------- 创建SSL安全连接 //创建SSL安全连接 private static SSLConnectionSocketFactory createSSLConnSocketFactory() { SSLConnectionSocketFactory sslsf = null; try { SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() { public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException { return true; } }).build(); sslsf = new SSLConnectionSocketFactory(sslContext, new X509HostnameVerifier() { public boolean verify(String arg0, SSLSession arg1) { return true; } public void verify(String host, SSLSocket ssl) throws IOException { } public void verify(String host, X509Certificate cert) throws SSLException { } public void verify(String host, String[] cns, String[] subjectAlts) throws SSLException { } }); } catch (GeneralSecurityException e) { e.printStackTrace(); } return sslsf; } } public static void main(String[] args) { String url ="https://rsb.pingan.com.cn/brop/ma/cust/app/market/loan/applyNewLoanC.do"; Encrypt encrypt = new Encrypt(); encrypt.setEncryptFlag("YES"); encrypt.setEncryptParam("HNuto1vtwEer3FaMNHRclszJUP3sT61%2BM62YN8b87S5ha3iiAb%2BboUKTjVaPrCREDrwVnWZERYe0SEFdhboM9DVRHnG3HJxZzByZGALNJxSs5nkAvigv6ErlqdH%2FBcpxHQINl4aXRGVm5AhtEXc5K%2Bu423ULxij%2FG%2BdBRQds5us%3D"); encrypt.setHouseLoan("YES"); encrypt.setInsurancePolicy("YES"); encrypt.setOuterSource("xyd0001"); encrypt.setProvidentFund("YES"); encrypt.setSource("sa0001459"); encrypt.setUserAge("23-55岁"); encrypt.setUserCreditCard("YES"); encrypt.setCity("广东-深圳"); encrypt.setCityCode("440300"); 方式一: /* String url ="http://10.3.110.138:8089/crm/user/login"; paramsMap.put("username","wwl"); paramsMap.put("password","123456");*/ 方式二: String Result =HttpRequestUtils.sendHttpsPost(url,encrypt); System.out.println(Result); }
相关 HTTP请求与响应:使用Java发送GET/POST请求 在Java中,我们可以使用各种库来发送HTTP GET或POST请求。这里我将展示如何使用Java的HttpURLConnection和OkHttp库进行操作。 1. **H 男娘i/ 2024年09月12日 09:00/ 0 赞/ 17 阅读
相关 HttpClient Http Post方法请求 POST请求用于向服务器发送数据; 例如,使用HTML表单的客户信息,文件上载等。 HttpClient API提供了一个名为HttpPost的类,它表示POST请求。 分手后的思念是犯贱/ 2024年02月05日 23:52/ 0 赞/ 17 阅读
相关 Java Http GET POST发送请求 Java Http GET POST发送请求 本文写了1个java 发送GET请求以及2个java 发送POST请求,新手,不喜勿喷! 背景: > 这是一个使用魔 た 入场券/ 2022年08月05日 02:46/ 0 赞/ 312 阅读
相关 JAVA利用HttpClient发送http请求 [HttpClient官网][HttpClient] 这里只是给自己做个笔记,记住有这个东西,看到此文章的人建议去官网学习使用 下面是官网简单的例子: pac 「爱情、让人受尽委屈。」/ 2022年06月18日 02:16/ 0 赞/ 301 阅读
相关 【Java工具七】java使用HttpClient的post请求http、https示例 package com.xxx.utils; import com.google.gson.Gson; import org. 古城微笑少年丶/ 2022年05月18日 09:04/ 0 赞/ 371 阅读
相关 HttpClient中post请求http、https示例 HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HT 超、凢脫俗/ 2022年05月14日 02:59/ 0 赞/ 400 阅读
相关 Java 使用 HttpClient 发送 Post请求(http与https) 发送 http 请求 发送 http 请求 package com.zealotpz.demo; import org.apache.ht 小咪咪/ 2022年04月08日 11:46/ 0 赞/ 313 阅读
相关 Java实现HttpClient发送GET、POST请求(https、http) 1、引入相关依赖包 jar包下载:[httpcore4.5.5.jar][] [fastjson-1.2.47.jar][] maven: ![复制代码][co 朴灿烈づ我的快乐病毒、/ 2021年09月28日 22:06/ 0 赞/ 1513 阅读
相关 JAVA 使用httpclient发送常见HTTP POST 和 GET 请求 JAVA项目开发中不可避免要发送http请求,http请求有get post请求,以下是自己整理的一个HTTP发送请求工具类。 maven pom文件配置 <d 旧城等待,/ 2021年09月27日 08:46/ 0 赞/ 384 阅读
还没有评论,来说两句吧...