HttpClient模拟http请求

最近工作中使用到了两个jar包 httpclient.jar, httpcore.jar

 

 HttpClient 的 abort(终止)程序示例

[java] view plaincopyprint?
/* 
 * ==================================================================== 
 * Licensed to the Apache Software Foundation (ASF) under one 
 * or more contributor license agreements.  See the NOTICE file 
 * distributed with this work for additional information 
 * regarding copyright ownership.  The ASF licenses this file 
 * to you under the Apache License, Version 2.0 (the 
 * "License"); you may not use this file except in compliance 
 * with the License.  You may obtain a copy of the License at 
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0 
 * 
 * Unless required by applicable law or agreed to in writing, 
 * software distributed under the License is distributed on an 
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
 * KIND, either express or implied.  See the License for the 
 * specific language governing permissions and limitations 
 * under the License. 
 * ==================================================================== 
 * 
 * This software consists of voluntary contributions made by many 
 * individuals on behalf of the Apache Software Foundation.  For more 
 * information on the Apache Software Foundation, please see 
 * <http://www.apache.org/>. 
 * 
 */  
  
package org.apache.http.examples.client;  
  
import org.apache.http.HttpEntity;  
import org.apache.http.HttpResponse;  
import org.apache.http.client.HttpClient;  
import org.apache.http.client.methods.HttpGet;  
import org.apache.http.impl.client.DefaultHttpClient;  
  
/** 
 * This example demonstrates how to abort an HTTP method before its normal completion. 
 * 在HttpClient 普通完成前调用abort方法对其进行终止 
 */  
public class ClientAbortMethod {  
  
    public final static void main(String[] args) throws Exception {  
        HttpClient httpclient = new DefaultHttpClient();  
        try {  
            HttpGet httpget = new HttpGet("http://www.apache.org/");  
  
            System.out.println("executing request " + httpget.getURI());  
            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());  
            }  
            System.out.println("----------------------------------------");  
  
            // Do not feel like reading the response body   
            // Call abort on the request object  
            // 不打算读取response body   
            // 调用request的abort方法  
            httpget.abort();  
        } finally {  
            // When HttpClient instance is no longer needed,  
            // shut down the connection manager to ensure  
            // immediate deallocation of all system resources  
            // 当HttpClient实例不再需要是,确保关闭connection manager,以释放其系统资源  
            httpclient.getConnectionManager().shutdown();  
        }  
    }  
  
}  

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

public class TTT
{

	/**
	 * @param args
	 * @throws IOException
	 * @throws ClientProtocolException
	 */
	public static void main(String[] args) throws ClientProtocolException, IOException
	{
		// 创建HttpClient实例
		HttpClient httpclient = new DefaultHttpClient();
		// 创建Get方法实例
		HttpGet httpgets = new HttpGet("http://www.baidu.com");
		
		HttpResponse response = httpclient.execute(httpgets);
		HttpEntity entity = response.getEntity();
		if (entity != null)
		{
			InputStream instreams = entity.getContent();
			String str = convertStreamToString(instreams);
			System.out.println(str);
			//终止http请求和响应
			httpgets.abort();
		}
	}

	public static String convertStreamToString(InputStream is)
	{
		BufferedReader reader = new BufferedReader(new InputStreamReader(is));
		StringBuilder sb = new StringBuilder();

		String line = null;
		try
		{
			while ((line = reader.readLine()) != null)
			{
				sb.append(line + "\n");
			}
		} catch (IOException e)
		{
			e.printStackTrace();
		} finally
		{
			try
			{
				is.close();
			} catch (IOException e)
			{
				e.printStackTrace();
			}
		}
		return sb.toString();
	}

}

  

posted @ 2015-10-07 22:41  无心流泪  阅读(426)  评论(0编辑  收藏  举报