- 浏览: 87583 次
- 性别:
- 来自: 河北
文章分类
最新评论
httpclient 通过https访问网站的方式有两种,一种是需要导入证书,一种是不需要的。导入证书的安全性比较高,但是如果网站证书更新了,证书需要重新导入。下面的例子是不安全的:
package net.ben;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
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.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.util.ArrayList;
import java.util.List;
public class HttpClientTest {
public static void main(String[] args) throws Exception {
DefaultHttpClient httpClient = new DefaultHttpClient();
try {
TrustManager easyTrustManager = new X509TrustManager() {
public void checkClientTrusted(java.security.cert.X509Certificate[] x509Certificates, String s) throws java.security.cert.CertificateException {
//To change body of implemented methods use File | Settings | File Templates.
}
public void checkServerTrusted(java.security.cert.X509Certificate[] x509Certificates, String s) throws java.security.cert.CertificateException {
//To change body of implemented methods use File | Settings | File Templates.
}
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return new java.security.cert.X509Certificate[0]; //To change body of implemented methods use File | Settings | File Templates.
}
};
SSLContext sslcontext = SSLContext.getInstance("TLS");
sslcontext.init(null, new TrustManager[]{easyTrustManager}, null);
SSLSocketFactory sf = new SSLSocketFactory(sslcontext);
Scheme sch = new Scheme("https", 443, sf);
httpClient.getConnectionManager().getSchemeRegistry().register(sch);
HttpGet httpget = new HttpGet("https://www.xxx.com/");
System.out.println("executing request" + httpget.getRequestLine());
HttpResponse response = httpClient.execute(httpget);
HttpEntity entity = response.getEntity();
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
if (entity != null) {
System.out.println("Response content length: " + entity.getContentLength());
}
String content = EntityUtils.toString(entity);
System.out.println(content);
} finally {
httpClient.getConnectionManager().shutdown();
}
}
}
package net.ben;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
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.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.util.ArrayList;
import java.util.List;
public class HttpClientTest {
public static void main(String[] args) throws Exception {
DefaultHttpClient httpClient = new DefaultHttpClient();
try {
TrustManager easyTrustManager = new X509TrustManager() {
public void checkClientTrusted(java.security.cert.X509Certificate[] x509Certificates, String s) throws java.security.cert.CertificateException {
//To change body of implemented methods use File | Settings | File Templates.
}
public void checkServerTrusted(java.security.cert.X509Certificate[] x509Certificates, String s) throws java.security.cert.CertificateException {
//To change body of implemented methods use File | Settings | File Templates.
}
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return new java.security.cert.X509Certificate[0]; //To change body of implemented methods use File | Settings | File Templates.
}
};
SSLContext sslcontext = SSLContext.getInstance("TLS");
sslcontext.init(null, new TrustManager[]{easyTrustManager}, null);
SSLSocketFactory sf = new SSLSocketFactory(sslcontext);
Scheme sch = new Scheme("https", 443, sf);
httpClient.getConnectionManager().getSchemeRegistry().register(sch);
HttpGet httpget = new HttpGet("https://www.xxx.com/");
System.out.println("executing request" + httpget.getRequestLine());
HttpResponse response = httpClient.execute(httpget);
HttpEntity entity = response.getEntity();
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
if (entity != null) {
System.out.println("Response content length: " + entity.getContentLength());
}
String content = EntityUtils.toString(entity);
System.out.println(content);
} finally {
httpClient.getConnectionManager().shutdown();
}
}
}
发表评论
-
cas-server 4.0.0 maven 编译
2015-06-17 14:21 5259最近需要用到cas sso单点登录,所以需要调研下cas服务, ... -
日常服务异常解决问题
2015-03-31 10:24 10271问题: Tomacat7启动报错-org.apache.ca ... -
Java 正则表达式
2014-07-08 20:15 3841:验证是否为URL且后缀为.jpeg等图片格式的地址: Pa ... -
ibatis like 防止sql注入
2014-06-25 16:18 677ibatis like查询防sql注入 为了防止SQL注入,i ... -
flex集成环境配置
2014-02-27 16:35 6951、登陆adobe官网,下载 Flash builder(我下 ... -
myeclipse 10 破解遇到问题解决方案
2014-01-09 17:48 524点击run运行时,无法启动破解程序 1、编辑run内容,将 * ... -
centos memcached
2013-09-03 23:24 641CentOS 安装配置memcached (转) 1、先下载m ... -
java服务端http请求post 发送数据量限制
2013-03-25 11:22 5084使用HttpClient的post提交数据遇到的有关问题 使 ... -
java 大数据次方运算
2013-01-23 15:20 3334/**引用网络文档*/ import java.io.Buff ... -
httpclient访问https
2012-09-14 16:00 3991package com.jadyer.util; ... -
tomcat6中配置SSL双向认证
2012-09-14 16:32 830原文出自:http://htallen.ite ... -
详解 Nginx + Tomcat HTTPS/SSL 配置
2012-09-14 15:21 997转载:http://my.oschina.net/zhlmmc ... -
tomcat配置http和https访问
2012-09-14 14:52 1707设置使tomcat既支持http访问,也支持https访问。需 ... -
https访问设置
2012-09-14 13:47 2import java.io.IOException; imp ... -
spring mvc整合freemarker基于注解方式
2012-05-22 09:54 954<?xml version="1.0" ...
相关推荐
网上找这个WebSphere(was)中间件或者应用服务器的相关资料还是挺少的。这里是一份关于was如何配置https证书,实现https访问的教程。
11-25访问RemoteAPP的3种方式04:36 11-26终端服务负载均衡06:37 11-27安装TS Broker02:45 11-28在DNS服务器上为终端服务添加主机记录03:33 11-29为终端服务指定TS Broker02:42 11-30验证终端服务负载均衡07:39 11-31...
4.修复企业VIP自助建站联系方式不显示问题; 5.检查修复所有模板页; 6.调整仿阿里风格首页模板标签调用; 7.优化文章发布中的关键词; 8.增加网站标签辅助工具中标签搜索功能; 9.增加行业资讯里信息来源与...
4-2使用组策略创建访问网站的快捷方式04:07 4-3使用组策略实现文件复制03:44 4-4使用组策略为域用户映射网络驱动器03:55 4-5使用组策略为用户创建拨号链接02:44 4-6配置域用户登录发短信通知管理员06:35 4-7使用vbs...
at /delete 停止所有计划任务,用参数/yes则不需要确认就直接停止 at id号 /delete 停止某个已注册的计划任务 at 查看所有的计划任务 at ip time 程序名(或一个命令) /r 在某时间运行对方某程序并重新启动计算机...
EFS加密是目前为止最安全的加密方式,...无论是添加授权用户,还是设置恢复代理,还是导入、导出证书,实际上的原理都是为文件访问创建私钥的条件,只有这样,拥有公钥的用户,在加上私钥便可以访问加密的文件夹了。
三、导入证书,选择 导入 四、然后进入 网站 —— 你的网站 —— 绑定,选择: 类型: HTTPS 主机名: 和证书相对应的域名 SSL 证书:和域名相对应的证书 五、瞅一眼,是不是已经有 HTTPS 了? 六、IIS 10 ...
■支持批量SSL证书部署模式 。 ■修正节日LOGO为SVG矢量。 ■修正搜索样式。 ■改进内置搜索表现,提供更多参数。 ■提供丰富的细致搜索。 ■在搜索主页提供svg代码式嵌入示范。 ■提供SASS(SCSS)引用规范 。 ■...
优化了通用资料列表方式导入模块,支持更新模式(感谢Snailmail)(人力资源软件) 2008-02-28 人力资源管理软件做了以下改进 岗位管理处能否按公司排列显示(感谢蓝血人) 员工资料管理界面的公司和部门显示做了...
JsHelper--Javascript操作帮助类,输出各种JS方法,方便不懂JS的人使用,减少代码量 7.JSON 转化类 ConvertJson List转成Json|对象转成Json|集合转成Json|DataSet转成Json|DataTable转成Json|DataReader转成Json等...
导入 - 带上所有当地的书签和/或浏览历史,然后按照您的方式进行删除 - 查看 - 排序和过滤您的PDS中的书签和/或浏览历史记录的视图 - 更新 - 更改不会复制您的书签或浏览历史记录,只保存一次,标记很多通过将数据...
BA功能限制 今天蓝莓无意中从谷歌上得知电信赠送的无线路由器有一个隐藏的超级管理员帐号,这个帐号可以使用许多隐藏功能,不过蓝莓试了下网上的默认密码nE7jA%5m,对蓝莓的路由根本不管用,而且网络上也并没有关...
它的行为方式与大多数其它子命令不同。 当我启动Apache,mod_dav_svn抱怨说发现一个“bad database version”,它发现了db-3.X而不是db-4.X。 我在RedHat 9得到“Function not implemented”错误,无法工作,我...
一完美的关于请求的目录不存在而需要url重写的解决方案! 在C#中实现MSN消息框的功能 XmlHttp实现无刷新三联动ListBox 鼠标放在一个连接上,会显示图片(类似tooltip) 使用microsoft.web.ui.webcontrols的TabStrip与...
它的行为方式与大多数其它子命令不同。 当我启动Apache,mod_dav_svn抱怨说发现一个“bad database version”,它发现了db-3.X而不是db-4.X。 我在RedHat 9得到“Function not implemented”错误,无法工作,我...
此版本主要修正索爱和诺基亚上的一些问题,MOTO用户可以不需要更新。自测机器为5300、N81、W710、M600 修正背景灯常亮无法保存的问题 NOKIA上按挂机键能正确保存阅读历史 修正在阅读历史损坏或过多的情况下不能启动...
同时,通过使用公钥密码算法,可以提供一种事先并不需要任何保密的渠道用来传递密匙的安全通讯方式。PGP功能强大,而且具有很快的速度,PGP提供的主要功能如表1.7.1所示。 表1.7.1 PGP的功能概述 功能 使用的算法 ...
3.在根目录里有个.evn文件,在输入数据库连接和授权码(最后一行auth_code那里填写/仅限商业版授权,开源不需要) 4.导入源码包内的数据库文件,访问后台(域名/admin 默认密码123456/开源版为6192652) 务必进入...
Chkdsk 命令需要 Autochk.exe 文件。如果不能在启动目录(默认为 %systemroot%System32)中找到该文件,将试着在 Windows 安装 CD 中找到它。如果有多引导系统的计算机,必须保证是在包含 Windows 的驱动器上使用该...