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();
	}

}

  

时间: 2024-10-28 22:17:20

HttpClient模拟http请求的相关文章

关于HttpClient模拟浏览器请求的參数乱码问题解决方式

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/44407297 http://www.llwjy.com/blogdetail/9383e88e4bc7378b8318e15b0ac33559.html 个人博客站已经上线了,网址:www.llwjy.com,欢迎大家吐槽~ -----------------------------------------------------------------------------

关于HttpClient模拟浏览器请求的参数乱码问题解决方案

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/44407297 http://www.llwjy.com/blogdetail/9383e88e4bc7378b8318e15b0ac33559.html 个人博客站已经上线了,网址:www.llwjy.com,欢迎大家吐槽~ -----------------------------------------------------------------------------

HttpClient模拟客户端请求实例

HttpClient Get请求: /// <summary>        /// Get请求模拟        /// </summary>        /// <param name="url">请求URL</param>        public void HttpRequest(string url)        {            HttpClient client = new HttpClient();     

httpclient模拟服务器请求

// 创建默认的httpClient实例. CloseableHttpClient httpclient = HttpClients.createDefault(); // 创建httppost HttpPost httppost = //new HttpPost("http://crmetl.yishenghuo.com:8142/outserver/startUpByHand.htm"); new HttpPost("http://localhost:8087/outse

httpclient模拟post请求json封装表单数据

1 public static String httpPostWithJSON(String url) throws Exception { 2 3 HttpPost httpPost = new HttpPost(url); 4 CloseableHttpClient client = HttpClients.createDefault(); 5 String respContent = null; 6 7 // json方式 8 JSONObject jsonParam = new JSON

使用HttpClient模拟登录人人网+发状态+日志+分享+留言

事先使用HttpAnalyzer对人人网抓包观察,得到相关事件的数据.然后使用HttpClient模拟http请求相关操作.以下代码是今天刚测试过.欢迎新手拿去玩玩.注意:首先要在工程里导入httpclient的包,在apache官网上应该有的下载: http://hc.apache.org/downloads.cgi,目前是4.0+版本:其次记得将主函数里的账号和密码改为自己的,即可完成. import java.io.IOException; import java.io.Unsupport

java模拟post请求发送json

java模拟post请求发送json,用两种方式实现,第一种是HttpURLConnection发送post请求,第二种是使用httpclient模拟post请求, 方法一: 1 package main.utils; 2 3 import java.io.*; 4 import java.net.HttpURLConnection; 5 import java.net.URL; 6 7 public class HttpUtilTest { 8 Log log = new Log(this.g

JAVA--利用HttpClient模拟浏览器登陆请求获取响应的Cookie

在通过java采集网页数据时,我们常常会遇到这样的问题: 站点需要登陆才能访问 而这种网站,一般都会对请求进行账号密码的验证,验证的方式也有多种,需要具体分析. 今天分析其中的一种情况: 站点对登陆密码进行动态加密,作为Cookie响应给客户端,之后的请求需要携带加密后的密码进行访问 登陆成功的响应头如下图: 之后的请求头: 因为每次登陆生成一个新的加密密码,所以之前的密码会失效 所以,需要在每次采集之前,先模拟登陆获取响应的密码,再作为cookie继续请求,我们选择采用HttpClient模拟

HttpClient模拟get,post请求并发送请求参数(json等)

import java.io.IOException; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HttpClient;