Java发送https请求,综合post请求,get请求,获取网络返回的信息
一个方法搞定后台返回的信息,话不多说,看程序吧
程序中需要的jar包一般都能找到,这次就不进行上传jar了(还要审核,太麻烦),如果找不到可留言
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.ConnectException;
import java.net.URL;import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;public class httpsRequest{/*** 发送https请求* * @param requestUrl 请求地址* @param requestMethod 请求方式(GET、POST)* @param outputStr 提交的数据* @return 返回服务器响应的信息*/public static String httpsRequest(String requestUrl, String requestMethod, String outputStr) {try {// 创建SSLContext对象,并使用我们指定的信任管理器初始化TrustManager[] tm = { new MyX509TrustManager() };SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");sslContext.init(null, tm, new java.security.SecureRandom());// 从上述SSLContext对象中得到SSLSocketFactory对象SSLSocketFactory ssf = sslContext.getSocketFactory();URL url = new URL(requestUrl);HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();conn.setSSLSocketFactory(ssf);conn.setDoOutput(true);conn.setDoInput(true);conn.setUseCaches(false);// 设置请求方式(GET/POST)conn.setRequestMethod(requestMethod);conn.setRequestProperty("content-type", "application/x-www-form-urlencoded");// 当outputStr不为null时向输出流写数据if (null != outputStr) {OutputStream outputStream = conn.getOutputStream();// 注意编码格式outputStream.write(outputStr.getBytes("UTF-8"));outputStream.close();}// 从输入流读取返回内容InputStream inputStream = conn.getInputStream();InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");BufferedReader bufferedReader = new BufferedReader(inputStreamReader);String str = null;StringBuffer buffer = new StringBuffer();while ((str = bufferedReader.readLine()) != null) {buffer.append(str);}// 释放资源bufferedReader.close();inputStreamReader.close();inputStream.close();inputStream = null;conn.disconnect();return buffer.toString();} catch (ConnectException ce) {System.err.println("连接超时:{}"+ ce);} catch (Exception e) {System.err.println("https请求异常:{}"+ e);}return null;}//字符编码统一格式为UTF-8public static String urlEncodeUTF8(String source){String result = source;try {result = java.net.URLEncoder.encode(source,"utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}return result;}
}
更多好用编程组件,博客中逛逛吧…
Java发送https请求,综合post请求,get请求,获取网络返回的信息相关推荐
- java 发送带basic认证的http post请求实例代码_图解HTTP学习笔记(八)—确认访问用户身份的认证...
某些 Web 页面只想让特定的人浏览,或者干脆仅本人可见.为达到这个目标,必不可少的就是认证功能. 一.认证 核对登录者本人才知道的信息: 密码.动态令牌.数字证书.生物认证.IC卡等 HTTP 使用 ...
- java调用第三方接口_java调用第三方接口,获取接口返回的数据。
java接收远程调用的数据,得到的是如上个数的返回内容,我怎么写才能获取到值,现在使用的请求方法如下: public static HttpResult postJsonData(String url ...
- JAVA通过HTTPS发送POST请求的方法
因为调用一个外部接口,会用到POST请求,而且还是Https的,但是由于之前学习的时候没有用到,所以研究了很久才弄懂了怎么去用JAVA实现Https发送post请求 使用的是HttpsURLConne ...
- java发送get请求,并带上参数,HTTP和HTTPS都可以
//java发送get请求,并带上参数public static String send_Get(String encode_data){CloseableHttpClient httpClient ...
- java后台发送https请求(基于httpTemplate的httpUtil工具实现)
最近做连续做了一些java后台发送http请求的需求,发现项目里实现http请求的写法各异,不够简洁统一,于是基于httpTemplate自行封装了一个http请求工具,常见的json和octet-s ...
- java模拟https请求_java-用httpclient模拟发送https请求
--调用项目提供接口,接口是用HTTP URL实现的,最初的想法是另一个项目用jQuery post进行请求. ---但是,很可能另一个项目是部署在别的机器上,那么就存在跨域问题,而jquery的po ...
- java实现https请求
参考: https://www.cnblogs.com/chinway/p/5802541.html java 实现https请求 JSSE是一个SSL和TLS的纯Java实现,通过JSSE可以很容易 ...
- RestTemplate 发送 Https 请求调用
RestTemplate 发送 Https 请求调用 个人博客:https://jacob.org.cn import org.apache.http.conn.ssl.NoopHostnameVer ...
- Java发送form-data请求实现文件上传
如何使用Java发送form-data格式的请求上传multipart文件? 封装了以下工具类: package com.leeyaonan.clinkz.common.util;import jav ...
- springboot 使用restTemplate 发送https请求 忽略ssl证书
最近在写接口的时候给对方回推数据,发送https请求的时候遇到这么个报错:javax.net.ssl.SSLHandshakeException: sun.security.validator.Val ...
最新文章
- Linux进程通信中IPC对象——IPC_PRIVATE与ftok
- apache2.2 做后端,增加真实ip到日志中
- 美多商城之商品(准备商品数据 )、Dockers容器和FastDFS存储
- vc6.0 记录一些常见问题的解决方案
- centos 上yum命令删除还原补救方法
- canal应用一:基于mysql binlog的日志解析工具
- 【转帖】漫话C++0x(四) —- function, bind和lambda
- Linux 安装卸载软件及管理软件仓库
- HTML5与CSS3权威指南笔记案例1
- 机器学习基石笔记5——为什么机器可以学习(1)
- 隐马尔科夫模型(Hidden Markov Models) 系列之四
- C++:STL之vector,deque对比
- 微软Office Live Workspace测试版开放全球注册
- 深度解析脑机接口技术的现状与未来!
- disk dynamic invalid 解决办法 动态磁盘转换器
- 彻底删除微软拼音输入法2003
- variance和variation的区别
- 中国势力主导NGN建设 华为中兴ASB三足鼎立
- Ubuntu系统电池管理软件TLP(Thinkpad设置电池充电阈值)
- 保险私有云 IaaS 资源池选型与演进之路 | SmartX 客户实践