- 浏览: 1250298 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (461)
- 心得体会 (166)
- Hibernate (9)
- Spring (12)
- Struts1 (3)
- Ajax (4)
- Java (54)
- 其他技术 (21)
- 数据库 (29)
- EXT (0)
- Struts2 (7)
- Xml (3)
- HTML (5)
- JavaScript (12)
- 面试相关 (3)
- BLOG (11)
- 计算机 (11)
- PMP (0)
- OGNL (1)
- LINUX (79)
- AIX (1)
- Ubuntu (14)
- Android (1)
- hadoop (3)
- LINUX debian (3)
- 心得体会 eclipse (2)
- JSTL (1)
- 心得体会 hadoop cdh3u5 (2)
- maven (5)
- Hive (1)
- 心得体会 工具使用 (3)
- spring data jpa Query By Example(QBE) (1)
- nginx (2)
- Apache (1)
- mysql (6)
- LINUX mysql (2)
- freemaker (1)
- 心得体会 FastDFS Nginx 断点续传 (1)
- LINUX FastDFS Nginx 断点续传 (1)
- 心得体会 Mybatis (2)
- 心得体会 mysql (4)
- php (1)
- logback 简介 (5)
- EL (1)
- Tomcat (2)
- win7 (1)
- LINUX maven (1)
- scrumworks (1)
- linux nginx (6)
- svn linux (1)
- mac (3)
- mac git (1)
- git (1)
- nexus (2)
- golang (1)
- LINUX Redis (1)
- mac oracle (1)
最新评论
-
a785975139:
有用
MySQL Error :SHOW PROFILES -
yijiulove:
弄了半天,参照你的方法解决了.特来感谢,知道可能是先加载,但是 ...
Spring和Mybatis整合时无法读取properties的处理方案 -
chenjinqi1987:
Missing com.sun.jdmk:jmxtools:jar:1.2.1 -
leifeng2:
请问怎么使用,运行之后d盘符没有生产音频文件呢?
java录音程序 -
sundful:
chenghong726 写道你好,我也遇到你这样的问题,按照 ...
Spring和Mybatis整合时无法读取properties的处理方案
客户端向服务器发送数据时,份两种情况,SSL单向验证和SSL双向验证
1.SSL单向验证时
代码如下:
- import java.io.IOException;
- import java.util.HashMap;
- import java.util.Map;
- import org.apache.commons.httpclient.HttpClient;
- import org.apache.commons.httpclient.HttpException;
- import org.apache.commons.httpclient.HttpStatus;
- import org.apache.commons.httpclient.NameValuePair;
- import org.apache.commons.httpclient.methods.PostMethod;
- import org.apache.commons.httpclient.params.HttpClientParams;
- import org.apache.commons.httpclient.params.HttpMethodParams;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- public class ClientSendData {
- static Log log = LogFactory.getLog(ClientSendData. class );
- private String Url;
- // 初始化数据
- public ClientSendData() {
- Url = "https://test.yihaodian.com:8443/ims/feedbackToPingAn_getData.action" ;
- }
- public String sendData(String data) {
- String receivedData = null ;
- try {
- Map<String, String> paramsData = new HashMap<String, String>();
- paramsData.put("data" , data);
- receivedData = send(Url, paramsData);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return receivedData;
- }
- public static String send(String url, Map<String, String> paramsMap) {
- String result = null ;
- PostMethod postMethod = null ;
- HttpClient httpClient = new HttpClient();
- httpClient.getParams().setParameter(
- HttpMethodParams.HTTP_CONTENT_CHARSET, "utf-8" );
- postMethod = new PostMethod(url);
- if (paramsMap != null && paramsMap.size() > 0 ) {
- NameValuePair[] datas = new NameValuePair[paramsMap.size()];
- int index = 0 ;
- for (String key : paramsMap.keySet()) {
- datas[index++] = new NameValuePair(key, paramsMap.get(key));
- }
- postMethod.setRequestBody(datas);
- }
- HttpClientParams httparams = new HttpClientParams();
- httparams.setSoTimeout(60000 );
- postMethod.setParams(httparams);
- try {
- int statusCode = httpClient.executeMethod(postMethod);
- if (statusCode == HttpStatus.SC_OK) {
- result = postMethod.getResponseBodyAsString();
- log.info("发送成功!" );
- } else {
- log.error(" http response status is " + statusCode);
- }
- } catch (HttpException e) {
- log.error("error url=" + url, e);
- } catch (IOException e) {
- log.error("error url=" + url, e);
- } finally {
- if (postMethod != null ) {
- postMethod.releaseConnection();
- }
- }
- return result;
- }
- public static void main(String[] args) {
- ClientSendData t = new ClientSendData();
- t.sendData("测试SSL单项连接,向服务端发送数据!" );
- }
- }
可能出现的异常
1.java.net.ConnectException: Connection refused: connect
服务器没有启动
2 .javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed
服务端的证书是不可信的。解决办法见这篇文章 http://zhuyuehua.iteye.com/blog/1102347
3.java.net.SocketException: Software caused connection abort: recv failed
这是由于服务端配置的是SSL双向认证,而客户端发送数据是按照服务器是单向认证时发送的,即没有将客户端证书信息一起发送给服务端。
4.org.apache.commons.httpclient.NoHttpResponseException
这一般是服务端防火墙的原因。拦截了客户端请求。
另外,当服务端负载过重时,也会出现此问题。
5.javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
这是由于服务端配置的是SSL双向认证,而客户端发送数据是按照服务器是单向认证时发送的,即没有将客户端证书信息一起发送给服务端。服务端验证客户端证书时,发现客户端没有证书,然后就断开了握手连接。
发表评论
-
springboot中spring.profiles.include的妙用
2019-09-30 10:03 1995我们有这样的一个spring ... -
java8--List转为Map、分组、过滤、求和等操作
2018-09-14 16:07 2812利用java8新特性,可以用简洁高效的代码来实现一些数据 ... -
intelliJ IDEA 文件修改之后的蓝色
2018-04-12 10:37 2435intelliJ IDEA链接svn之后,当文件发生修 ... -
Restful与webService区别
2018-02-13 09:59 773有好多人问我们在设计底层服务的时候到底是应该选 ... -
InputStream为什么不能被重复读取?
2017-07-17 14:36 949首先,熟悉Java的人可能都知道,Java中的Inputst ... -
CentOS下SWAP分区建立及释放内存
2016-02-18 14:20 3668方法一: 一、查看系统当前的分区情况:>free - ... -
CentOS下挂载硬盘(fdisk,mkfs.ext4,mount)
2016-02-18 13:55 7104centos挂载硬盘 挂载硬盘步骤: 1. 先分区 ... -
七个对我最重要的职业建议
2015-12-17 13:19 570Nicholas C. Zakas 是全世 ... -
Centos安装Vsftpd
2015-11-03 19:10 881安装部分摘自开源中国,最后红色部分解决无法登陆(cannot ... -
在logback中配置mybatis显示sql
2015-07-08 11:56 1181第一种方式、直接在logback.xml配置文件中添加: ... -
git 删除远程分支
2015-06-25 14:58 1011一不小心把本地的临时分支push到server上去了,想要删除 ... -
httpclient 上传、下载文件
2015-04-20 18:53 1097/** * 上传文件 * @throws Pars ... -
Java 7, Jenkins, Ubuntu 12.10 64bit issues
2015-01-20 16:44 876While installing Jenkins 1.486 ... -
在CentOS中安装中文字体
2014-08-08 14:25 1847以linux下安装宋体,黑体为例,介绍字体安装方法:第一步、 ... -
JCaptcha 验证码添加干扰线,显示中文验证码
2014-08-08 13:30 8617import java.awt.Color; import ... -
nginx记录post参数和自定义头信息
2014-08-01 19:10 20971.版本:nginx/1.4.4 记录post参数: ... -
理解 JMeter 聚合报告(Aggregate Report)
2014-06-27 17:01 9662Aggregate Report 是 JMeter 常用的一 ... -
系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式
2014-06-26 14:34 2368一.系统吞度量要素: ... -
web 性能测试中的几个关键指标:并发用户数,QPS,用户平均请求等待时间
2014-06-26 13:40 1057关于并发用户数和QPS,自己一直被这两个概念纠结,阅读了一下相 ... -
QPS、PV和需要部署机器数量计算公式(转)
2014-06-26 11:33 1217术语说明:QPS = req/sec = 请求数/秒 【Q ...
相关推荐
本示例探讨的是如何使用HTTPClient库在客户端发送XML报文到服务器端,且报文通过POST方法传递,并可能涉及加密处理,确保数据的安全性。 首先,HTTPClient是Apache提供的一款强大的Java HTTP客户端API,它允许...
标题中的“使用httpClient访问https+443端口号”指的是使用Apache HttpClient库来发起HTTPS(安全超文本传输协议)请求,目标服务器的默认端口是443。HTTPS是一种基于SSL/TLS的安全通信协议,用于在客户端和服务器...
7. 现在HttpClient已经配置好,可以安全地发送请求到需要客户端认证的HTTPS接口。 请注意,虽然`TrustAllManager`方便测试,但在生产环境中应谨慎使用,因为它可能引入安全风险。在实际应用中,你应该根据服务器...
本篇文章将深入探讨客户端如何使用HTTPClient库向HTTPS服务器发送数据,同时也会涉及到HTTPS协议的相关概念和Java中实现HTTPS客户端的方法。 首先,我们来理解HTTPS(超文本传输安全协议)。HTTPS是在HTTP的基础上...
在实际项目中,我们经常需要使用HttpClient来发送POST请求,以便与服务器进行数据交换。但是,当我们需要使用HTTPS协议时,事情变得复杂起来。HTTPS协议需要SSL/TLS证书来确保数据的安全,而HttpClient需要忽略证书...
在这个场景中,我们关注的是如何使用HttpClient来发送POST请求并传输JSON数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于API接口的数据传递。 首先,我们需要引入Apache HttpClient...
在"网易贵金属"的例子中,你可能需要使用HttpClient发送GET请求到网易贵金属的页面,然后使用Jsoup解析返回的HTML,找到包含贵金属价格、新闻等信息的部分,从而实现数据抓取。实际操作时,可能还需要考虑登录、分页...
HTTPClient是Java编程语言中广泛使用的HTTP客户端库,主要用于与HTTP服务器进行通信。这个压缩包文件包含三个重要的组件,它们是: 1. **httpclient-4.3.3.jar**:这是Apache HttpClient库的主要实现,版本4.3.3。...
在本文中,我们将深入探讨如何使用Ionic、Angular和Express框架构建一个完整的前后端交互系统,特别是在客户端使用HttpClient发送GET请求获取数据并在页面上显示。这是一个常见的应用场景,对于开发跨平台移动应用...
`HttpClient`是Apache提供的一款强大的HTTP客户端库,可以用于实现向服务器发送HTTP请求并接收响应。本篇将详细讲解如何使用`HttpClient`进行异步请求数据,并结合Android的`AsyncTask`来处理后台任务,避免阻塞UI...
1. HttpClient使用:创建HttpClient实例,配置请求参数,然后通过execute方法发送请求,获取响应。它可以方便地处理各种复杂的HTTP请求场景。 2. 请求与响应处理:HttpClient允许开发者精细控制请求头、请求体、...
- **发送数据**:Android客户端通常通过HTTP请求(如GET、POST、PUT、DELETE)向服务器发送JSON数据。可以使用HttpURLConnection或OkHttp库来实现。POST请求时,JSON数据通常作为请求体发送;GET请求则将数据附加到...
在IT行业中,网络通信是不可或缺的一部分,而HttpClient作为Java领域常用的HTTP客户端库,为我们提供了方便地与Web服务器交互的能力。本篇文章将详细讲解如何利用HttpClient上传文件到测试服务器,这在进行API测试、...
3. 设置请求体:如果需要发送数据,可以使用`StringEntity`或者`HttpEntityEnclosingRequestBase`的子类来封装数据。例如,若数据是JSON格式,可以这样设置:`StringEntity entity = new StringEntity(jsonContent, ...
此外,HttpClient还具有处理HTTPS协议的能力,可以处理SSL/TLS加密,确保数据在传输过程中的安全性。 在HTTPS实战中,首先我们需要理解HTTPS的基本原理。HTTPS是在HTTP基础上加入了SSL/TLS层,用于加密通信和验证...
使用`HttpClient`的`execute`方法发送请求,并捕获`HttpResponse`对象来接收服务器的响应: ```java HttpResponse httpResponse = httpClient.execute(httpGet); ``` ## 6. 解析响应内容 从`HttpResponse`对象中,...
- 使用`NameValuePair`或`HttpEntity`发送表单数据或JSON数据。 - 使用`RedirectStrategy`控制重定向行为。 - 使用`AuthenticationStrategy`进行身份验证。 - 使用`PoolingHttpClientConnectionManager`管理连接池。...
这些接口通常会向服务器发送Ajax请求,获取动态内容后更新到页面上。通过分析这些请求,开发者可以找到数据接口,并使用HttpClient来模拟这些请求,获取到动态加载的数据。 在本例中,我们通过Jsoup获取到了京东...
Java中使用HttpClient进行HTTPS接口调用的方法是通过继承DefaultHttpClient类,忽略证书校验过程。首先,创建一个SSLClient类,继承DefaultHttpClient类,并在构造函数中初始化SSLContext和TrustManager。然后,使用...
在Java中,使用HTTPClient库与HTTPS服务器通信时,我们不仅需要发送HTTP请求,还需要处理SSL/TLS的握手过程。 HTTPClient库是由Apache提供的一款高效、功能丰富的HTTP客户端API。在Java中,我们通常使用HttpClient ...