• 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 + "
    ");
    			}
    		} catch (IOException e)
    		{
    			e.printStackTrace();
    		} finally
    		{
    			try
    			{
    				is.close();
    			} catch (IOException e)
    			{
    				e.printStackTrace();
    			}
    		}
    		return sb.toString();
    	}
    
    }
    

      

  • 相关阅读:
    js中break/continue
    js实现连接的两种放法
    jsdate对象toLocaleString()方法小结
    接口学习小节
    c# 装箱和拆箱
    c#数据类型学习
    return 作用域
    js中break/continue
    ArcGIS Runtime for Android开发教程V2.0(9)基础篇查询检索
    【转】ArcGIS 10.1 地图发布以及缓存管理
  • 原文地址:https://www.cnblogs.com/wuxinliulei/p/4859721.html
Copyright © 2020-2023  润新知