HttpClient,HttpGet

HttpClient使用HttpGet传数据

package com.ghjz.utils;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;
import org.apache.http.HeaderElement;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.ParseException;
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;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.util.EntityUtils;


/**
 * 观翰家接口
 * @author ZX
 *
 */
public class Ghjz {
	
	private static org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(Ghjz.class);
	private static final String URL = "http://www.ttnz.net/Track/cps.html?";
	
	public static String httpGet(InvestInfoBean bean) throws ClientProtocolException, IOException, URISyntaxException {  
        HttpClient httpclient = new DefaultHttpClient();  
        String result = "";  
         try {  
               // 连接超时  
              httpclient.getParams().setParameter(  
                          CoreConnectionPNames. CONNECTION_TIMEOUT, 5000);  
               // 读取超时  
              httpclient.getParams().setParameter(  
                          CoreConnectionPNames. SO_TIMEOUT, 5000);  

               HttpGet hg = new HttpGet (URL+bean.toString());  
               //模拟浏览器  
              hg.addHeader( "User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31");   
              String charset = "UTF-8";   
              hg.setURI( new java.net.URI(URL+bean.toString()));   
                    HttpResponse response = httpclient.execute(hg);   
                    HttpEntity entity = response.getEntity();   
                    if (entity != null) {   
                        charset = getContentCharSet(entity);  
                           // 使用EntityUtils的toString方法,传递编码,默认编码是ISO-8859-1   
                        result = EntityUtils.toString(entity, charset);   
                  }   
    
        } finally {  
              httpclient.getConnectionManager().shutdown();  
        }  
         log.info("result:--------------:"+result);
         return result;  
  }  
	
	/** 
     * 默认编码utf -8 
     * Obtains character set of the entity, if known. 
     *  
     * @param entity must not be null 
     * @return the character set, or null if not found 
     * @throws ParseException if header elements cannot be parsed 
     * @throws IllegalArgumentException if entity is null 
     */    
    public static String getContentCharSet(final HttpEntity entity)   
        throws ParseException {   
   
        if (entity == null) {   
            throw new IllegalArgumentException("HTTP entity may not be null");   
        }   
        String charset = null;   
        if (entity.getContentType() != null) {    
            HeaderElement values[] = entity.getContentType().getElements();   
            if (values.length > 0) {   
                NameValuePair param = values[0].getParameterByName("charset" );   
                if (param != null) {   
                    charset = param.getValue();   
                }   
            }   
        }   
         
        if(StringUtils.isEmpty(charset)){  
            charset = "UTF-8";  
        }  
        return charset;   
    }  

}


HttpClient是一个开源的HTTP客户端库,用于发送HTTP请求和处理HTTP响应。它提供了简单易用的API,可以发送GET请求以及其他类型的请求。 要发送GET请求,首先需要创建一个HttpClient对象。然后,创建一个HttpGet对象,并设置请求的URL。最后,使用HttpClient对象执行HttpGet请求,并处理返回的响应。 以下是使用HttpClient发送GET请求的示例代码: ```java 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.HttpClientBuilder; import org.apache.http.util.EntityUtils; public class HttpClientExample { public static void main(String[] args) { HttpClient httpClient = HttpClientBuilder.create().build(); String url = "http://example.com/api/data"; HttpGet httpGet = new HttpGet(url); try { HttpResponse response = httpClient.execute(httpGet); HttpEntity entity = response.getEntity(); if (entity != null) { String responseBody = EntityUtils.toString(entity); System.out.println(responseBody); } } catch (Exception e) { e.printStackTrace(); } } } ``` 以上代码中,我们首先创建了一个HttpClient对象,然后创建了一个HttpGet对象,并设置了请求的URL。接下来,使用HttpClient对象的execute方法执行HttpGet请求,并获取返回的HttpResponse对象。通过HttpResponse对象可以获取响应的实体(HttpEntity),并将其转换为字符串进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值