- 浏览: 343925 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (169)
- spring (20)
- java (44)
- ibatis (0)
- hibernate (6)
- struts (2)
- javascript (6)
- ajax (1)
- eclipse (4)
- 其他 (10)
- database (17)
- ibatis 分页 (7)
- xml (2)
- pl/sql (6)
- sql (4)
- apache (3)
- oracle (8)
- jdom (1)
- Open ModelSphere (1)
- 线程 (2)
- 多线程 (2)
- 查找文件 (1)
- Comparator (2)
- jxl (2)
- jquery (1)
- Flex (2)
- 非技术 (1)
- mysql (2)
- zxing (1)
- jdbc (1)
- Java内存 (1)
- editplus (1)
- log4j (1)
- sqlserver (2)
- base64 (1)
- Linux (4)
- Shell (2)
- 非技术共享 (1)
- 省市 (1)
- PowerDesigner (3)
- 观察者模式 (2)
- Servlet (1)
- 单点登录 (1)
- IO (1)
- tomcat (1)
- clob (1)
- html (1)
- jsp (2)
- JNative (1)
- WebService (2)
- Highcharts (1)
- Spring Security (1)
- ztree (1)
- Mongodb (3)
- sftp (1)
- SVN (1)
- openSUSE (1)
- Ubuntu (1)
- nio (1)
- springboot (1)
- java8 (1)
最新评论
-
wajjj:
[flash=200,200][url][img][list] ...
【JAVA】读取excel内容(兼容03和07格式) -
xurichusheng:
jjhe369 写道感谢分享!但是发现一个小问题,就是第13, ...
oracle 存储过程分页查询 -
jjhe369:
感谢分享!但是发现一个小问题,就是第13,14行的V_STAR ...
oracle 存储过程分页查询 -
飞天奔月:
为什么不用 Map<String, String> ...
读取.properties的内容,并将内容放入一个Map中 -
xurichusheng:
814687491 写道测试了一下,无法换行!你可以自定义自己 ...
使用google的zxing制作二维码
使用的jar包:
commons-codec-1.4.jar
commons-httpclient.jar
commons-logging-1.1.1.jar
httpclient-4.1.2.jar
httpclient-cache-4.1.2.jar
httpcore-4.1.2.jar
httpmime-4.1.2.jar
import java.io.IOException; import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpMethod; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager; import org.apache.commons.httpclient.ProxyHost; import org.apache.commons.httpclient.URIException; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.params.HttpMethodParams; /** * @ClassName: ProxySample * @Description: 测试HttpClient代理 * @author * @date 2012-1-10 上午9:45:10 * @version V1.0 */ public class ProxySample { /** * @Title: main * @Description: 测试HttpClient代理 * @param args * @author * @date 2012-1-10 */ public static void main(String[] args) { String url = "http://www.apache.org"; new ProxySample().get(url); } /** * @Title: get * @Description: 根据输入的url,获取对应的内容 * @param url * @author * @date 2012-1-10 */ public void get(final String url) { MultiThreadedHttpConnectionManager manager = new MultiThreadedHttpConnectionManager(); // 创建 HttpClient 的实例 final HttpClient httpClient = new HttpClient(manager); // 代理的主机 ProxyHost proxy = new ProxyHost("openproxy.huawei.com", 8080); // 使用代理 httpClient.getHostConfiguration().setProxyHost(proxy); // 创建Get连接方法的实例 final HttpMethod getMethod = new GetMethod(url); // 使用系统提供的默认的恢复策略 getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler()); Thread t = new Thread(new Runnable() { @Override public void run() { try { // 请求URI System.out.println("executing request : " + url); // 执行getMethod int status = httpClient.executeMethod(getMethod); System.out.println("status:" + status); // 连接返回的状态码 if (HttpStatus.SC_OK == status) { System.out.println("Connection to " + getMethod.getURI() + " Success!"); // 获取到的内容 String responseBody = getMethod .getResponseBodyAsString(); System.out.println(responseBody); } } catch (URIException e) { e.printStackTrace(); } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } }); // 将该线程标记为守护线程或用户线程 /* t.setDaemon(true); */ // 启动线程 t.start(); try { // 等待5s后结束 t.join(5000L); } catch (InterruptedException e) { t.interrupt(); e.printStackTrace(); } // 释放连接 getMethod.abort(); } }
发表评论
-
mysql树
2019-09-26 08:39 394mysql树 -
【JAVA】组织树
2019-09-04 10:17 1040JDK 版本:jdk 1.8 及以上。 1. ... -
多线程多批量插入大数据
2018-10-31 11:19 6404参考 https://blog.csdn.ne ... -
java 7 nio逐行读取文件内容
2015-12-26 23:33 5452nio逐行读取文件内容,使用 java 7. 首先,获取 ... -
java 6 IO读取txt文件内容
2015-12-26 23:24 871逐行读取。 首先获取文件的编码格式; 读取文件内容。 ... -
【JAVA】读取excel内容(兼容03和07格式)
2015-12-21 13:51 2178jar 包: poi-3.13.j ... -
一行代码去除List中的重复数据
2015-12-02 10:52 16641. 核心代码: List<String> ... -
将List中的对象中的字段的重复值删除
2015-12-01 11:10 2698如下面的对象 Subs,如果其属性 startSt 和 e ... -
jdk 官方下载地址
2015-11-06 10:00 1854http://www.oracle.com/techn ... -
jsp页面显示二进制图片
2014-11-05 15:58 40791. DAO层 import java.sql.C ... -
java中使用JNative调用dll方法
2014-03-03 16:02 5312使用JNative调用dll方法, dll 文件名 ... -
Vector排序
2013-05-08 10:17 15311. Vector 默认按元素的添加顺序排序 im ... -
使用观察者模式监听Map值的改变
2013-05-02 16:46 6184观察者(Observer)角色:为所有的具体观察者定 ... -
【转】一个比较快的Base64 编码/解码 算法
2013-03-28 17:50 1719转自: 中国开源社区 最快的 Base64 编码/解 ... -
jdbc 数据库连接池
2012-12-04 16:09 1506注:有些java类是JDK ... -
将查询结果导入excel 中
2012-06-29 11:14 12051. 数据库:oracle 10g2 JDK: ... -
使用Comparator做对象的排序
2012-06-15 18:15 1329之前在面试的时候,人家老是问怎么对对象进行排序。 虽然 ... -
【转】 模拟银行业务调度系统
2012-06-13 15:39 1196转自:CSDN,itm_hadf ... -
HttpClient 代理实例(Get方式) 线程池
2012-01-10 14:41 3271import java.io.IOException; ... -
HttpClient 代理实例(Get方式)
2012-01-10 10:18 5433HttpClient 代理实例(Get方式) 使 ...
相关推荐
3. 关于线程安全:`HttpClient`不是线程安全的,如果你在多线程环境中使用,需要为每个线程创建新的`HttpClient`实例,或者使用线程池和连接池来管理。 4. Android API 22及之后,`HttpClient`被标记为过时,推荐...
1. **初始化HttpClient**:首先,我们需要创建一个HttpClient实例,设置连接超时、读取超时等参数,确保在网络不稳定时能够及时响应。 2. **构建HttpGet或HttpPost对象**:根据需求,我们可以选择HttpGet或HttpPost...
注意在并发环境中,必须确保HttpClient的线程安全,例如,避免在多个线程之间共享同一个HttpClient实例,而是为每个请求创建新的HttpClient,或者使用连接池来复用连接。 总的来说,HttpClient与Spring的结合使得在...
HttpClient的主要组件包括HttpClient实例、HttpGet或HttpPost请求对象、HttpResponse响应对象以及HttpEntity实体。我们可以通过HttpClient发送请求,获取响应,然后从HttpEntity中提取数据。例如,创建一个GET请求:...
HttpClient实例负责发起网络请求,HttpRequest表示我们想要执行的HTTP操作(如GET、POST或PUT),而HttpResponse则包含了服务器返回的数据和状态信息。 **GET请求** GET请求是最常见的HTTP请求,用于获取资源。在...
每个线程会维护自己的下载范围,并使用HTTPClient发送GET请求获取相应段的数据。HTTP请求中的Range头字段是实现分段下载的关键,它指定服务器返回文件的哪个部分。例如,如果要下载第5MB到第10MB的部分,Range头可能...
四、创建HttpClient实例并发送请求 有了处理程序后,我们可以创建HttpClient实例,并使用它来发送HTTP请求: ```csharp using (var client = new HttpClient(handler)) { var response = await client.GetAsync(...
在Android早期版本中,`HttpClient`是官方推荐的网络通信方式,但在API级别22之后,其已被弃用,取而代之的是`HttpURLConnection`和`OkHttp`等更现代、更高效的库。然而,由于`HttpClient`的成熟性和易用性,许多...
1. **HttpClient实例**:HttpClient是线程不安全的,所以通常推荐每个请求创建一个新实例。`HttpClientBuilder`类可以用来构建自定义配置的客户端实例。 2. **请求执行器(RequestExecutor)**:处理HTTP请求和响应...
1. **HttpClient的基本使用**:介绍HttpClient类的基本概念,包括如何创建实例,设置请求头,以及发送GET和POST请求。 2. **封装的设计**:讨论如何设计一个网络请求的通用接口或类,比如定义方法如`SendGetAsync`...
现在,我们可以创建一个基于连接池的HttpClient实例: ```java // 创建HttpClient实例,使用连接池管理器 httpClient = HttpClients.custom().setConnectionManager(cm).build(); ``` 为了实现多线程并发,我们需要...
5. **线程安全**:HttpClient实例不是线程安全的,如果在多线程环境中使用,需要为每个线程创建独立的HttpClient实例,或者使用线程局部变量。 总的来说,HttpClient是Java开发者在进行HTTP通信时的重要工具,它的...
1. 创建`HttpClient`实例,`HttpClient httpClient = new DefaultHttpClient();` 2. 创建`HttpGet`或`HttpPost`对象,设置URL。 3. 对于`HttpPost`,使用`setEntity()`方法添加请求体。 4. 使用`httpClient.execute...
HttpClient允许开发者发送GET、POST、PUT、DELETE等各种HTTP方法的请求,并处理响应。这些请求可以携带参数、头信息、主体内容等。响应对象包含了HTTP状态码、响应头和响应体。 2. **连接管理**: HttpClient提供...
- 注意线程安全问题,HttpClient对象通常不是线程安全的,可能需要为每个请求创建新的HttpClient实例,或者使用线程池和HttpRoutePlanner。 在提供的压缩包中,你可能会找到上述步骤的详细代码示例,以及关于如何...
- **线程安全**:确保封装的HttpClient实例在多线程环境中的安全使用。 - **请求/响应缓存**:在本地缓存HTTP请求和响应,减少网络延迟。 文件名为httpClient的压缩包很可能包含了封装HttpClient的相关代码,可能...
1. **初始化HttpClient**:首先,你需要创建一个HttpClient实例,可能需要配置连接管理器、超时设置、代理等参数。 2. **创建HttpGet请求**:根据需求,创建HttpGet对象,设置请求的URL。 3. **执行请求**:使用...
在多线程环境中,为避免资源竞争和提高性能,我们通常会创建一个线程安全的HttpClient实例。可以使用静态成员变量或者单例模式来实现: ```java public class HttpClientSingleton { private static ...
同时,需要注意HttpClient不是线程安全的,因此在多线程环境中,每个线程应有自己的HttpClient实例。 6. **处理重定向**: HttpClient默认会自动处理重定向,但你可以通过配置`RedirectStrategy`来改变这一行为。 ...
1. **创建HttpClient实例**: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); ``` 2. **构造HttpGet请求**: ```java HttpGet httpGet = new HttpGet("http://example.com"); ``` 3....