Java使用HttpsURLConnection进行Get和Post请求(绕过证书验证)
来源:互联网 发布:淘宝怎么开手机充值店 编辑:程序博客网 时间:2024/06/05 13:10
工作中遇到使用HttpsURLConnection进行Get和Post请求时,报出javax.net.ssl.SSLHandshakeException异常,也就是证书验证问题,由于时间问题,在导入证书一直失败后,无奈选择绕过证书方式发送请求。。。
Get:
//与HttpURLConnection类似public String getconnbyget(String url){ StringBuilder result = new StringBuilder();try {URL u=new URL(url);HttpsURLConnection huconn=(HttpsURLConnection) u.openConnection(); //连接服务器 huconn.connect(); // 取得输入流,并使用Reader读取 BufferedReader in = new BufferedReader(new InputStreamReader(huconn.getInputStream(), "UTF-8")); String line; while ((line = in.readLine()) != null) { result.append(line); }} catch (IOException e) {e.printStackTrace();}finally{ try{ if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } }return result.toString();}
Post:
public String gethttpsconnbypost(String url,MapheadMap){ StringBuilder result = new StringBuilder();try {//创建地址对象URL u=new URL(url);//获取HttpURLConnection链接对象HttpURLConnection huconn=(HttpURLConnection) u.openConnection();//绕过证书验证,验证主机名和服务器验证方案的匹配是可接受的huconn.setHostnameVerifier(new CustomizedHostnameVerifier());// 发送POST请求必须设置如下两行,如果打算使用 URL 连接进行输出,则将 DoOutput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 falsehuconn.setDoOutput(true);//如果打算使用 URL 连接进行输入,则将 DoInput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 truehuconn.setDoInput(true);//设置POST方式连接huconn.setRequestMethod("POST");//创建头信息map迭代器 Iterator it = headMap.keySet().iterator(); //设置请求头配置信息 while (it.hasNext()) {String key = it.next();String value = headMap.get(key);huconn.setRequestProperty(key, value);}//连接服务器 OutputStreamWriter out = new OutputStreamWriter(huconn.getOutputStream(),"UTF-8"); //写入请求体 out.write(data); out.flush(); out.close(); // 取得输入流,并使用Reader读取,设定字符编码 BufferedReader in = new BufferedReader(new InputStreamReader(huconn.getInputStream(), "UTF-8")); String line; while ((line = in.readLine()) != null) { result.append(line); }} catch (IOException e) {e.printStackTrace();}//关闭输入流 finally{ try{ if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } }return result.toString();}
验证证书类
import javax.net.ssl.HostnameVerifier;import javax.net.ssl.SSLSession;public class CustomizedHostnameVerifier implements HostnameVerifier{ //重写验证方法 @Override public boolean verify(String arg0, SSLSession arg1) { //所有都正确 return true; } }
但最好还是使用导入证书方式
阅读全文
0 0
- Java使用HttpsURLConnection进行Get和Post请求(绕过证书验证)
- java 关于httpclient 请求https (如何绕过证书验证)
- java 关于httpclient 请求https (如何绕过证书验证)
- 使用HttpClient进行get和post请求
- JAVA利用HttpClient进行POST和GET请求(HTTPS)
- 使用HttpsURLConnection发送POST请求
- 使用HttpsURLConnection发送POST请求
- 使用HttpsURLConnection发送POST请求
- HttpsURLConnection实现SSL的GET/POST请求
- HttpsURLConnection实现SSL的GET/POST请求
- 使用htps进行,Get请求和post请求
- Java:使用HttpClient进行POST和GET请求以及文件上传和下载
- Java:使用HttpClient进行POST和GET请求以及文件上传和下载
- java请求https地址如何绕过证书验证?
- 使用OC进行实现GET和POST请求
- java 模拟浏览器进行get和post请求
- java使用httpclient模拟post请求和get请求示例
- java使用httpclient封装post请求和get的请求
- 基于FFmpeg的视频推流
- alibaba java coding Guidelines阿里巴巴代码规范指南插件的集成方法以及些小细节
- vscode, sublime, atom的快捷设置
- 非递归实现二叉树的后序遍历、前序遍历、中序遍历
- js 正则表达式判断非法字符 常用正则表达式
- Java使用HttpsURLConnection进行Get和Post请求(绕过证书验证)
- jquery text()
- 解决php读取txt文件时的换行问题
- 2017.10.16 水管局长&&水管局长数据加强版 思考记录
- hdu 2151 worm
- 关于微信登录网站回调地址
- java 移位运算符中<<和>>运算
- p43 3.4
- 新唐N32926开发板移植mcp2515(一)