httpClient----java基础
来源:互联网 发布:玩吃鸡网络延迟 编辑:程序博客网 时间:2024/05/17 05:09
在http请求失败是要进行下列操作:
if (response.getStatusLine ().getStatusCode () != 200) { get.abort(); return null; }
HttpGet操作:
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("----------------------------------------"); InputStream inSm = entity.getContent(); Scanner inScn = new Scanner(inSm); while (inScn.hasNextLine()) { System.out.println(inScn.nextLine()); } // Do not feel like reading the response body // Call abort on the request object httpget.abort(); } finally { // When HttpClient instance is no longer needed, // shut down the connection manager to ensure // immediate deallocation of all system resources httpclient.getConnectionManager().shutdown(); } }
读取response响应内容部分,也可以借助于 httpcore-4.1.2.jar 里面的:
public class Demo1 { /** * 用 get 方法访问 www.apache.org 并返回内容 * * @param args */ public static void main(String[] args) { //创建默认的 HttpClient 实例 HttpClient httpClient = new DefaultHttpClient(); try { //创建 httpUriRequest 实例 HttpGet httpGet = new HttpGet("http://www.apache.org/"); System.out.println("uri=" + httpGet.getURI()); //执行 get 请求 HttpResponse httpResponse = httpClient.execute(httpGet); //获取响应实体 HttpEntity httpEntity = httpResponse.getEntity(); //打印响应状态 System.out.println(httpResponse.getStatusLine()); if (httpEntity != null) { //响应内容的长度 long length = httpEntity.getContentLength(); //响应内容 String content = EntityUtils.toString(httpEntity); System.out.println("Response content length:" + length); System.out.println("Response content:" + content); } //有些教程里没有下面这行 httpGet.abort(); } catch (Exception e) { e.printStackTrace(); } finally { //关闭连接,释放资源 httpClient.getConnectionManager().shutdown(); } }}
分析请求包中这六个头信息:httpget.setHeader("Accept-Encoding", "gzip, deflate")可能产生乱码
/** * @param args * @throws IOException */ public static void main(String[] args) { HttpClient httpClient = new DefaultHttpClient(); try { HttpGet httpget = new HttpGet("http://www.iteye.com"); httpget.setHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); httpget.setHeader("Accept-Language", "zh-cn,zh;q=0.5"); httpget.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1)"); httpget.setHeader("Accept-Encoding", "gzip, deflate"); httpget.setHeader("Accept-Charset", "GB2312,utf-8;q=0.7,*;q=0.7"); httpget.setHeader("Host", "www.iteye.com"); httpget.setHeader("Connection", "Keep-Alive"); 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("----------------------------------------"); InputStream inSm = entity.getContent(); Scanner inScn = new Scanner(inSm); while (inScn.hasNextLine()) { System.out.println(inScn.nextLine()); } // Do not feel like reading the response body // Call abort on the request object httpget.abort(); } catch (Exception e) { e.printStackTrace(); } finally { // When HttpClient instance is no longer needed, // shut down the connection manager to ensure // immediate deallocation of all system resources httpClient.getConnectionManager().shutdown(); } }
HttpPost操作:
public class Demo2 { /** * 用post方法访问本地应用根据传递参数不同,返回不同结果 * * @param args */ public static void main(String[] args) { //创建默认的 HttpClient 实例 HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost("http://localhost:86/test1Servlet"); List<NameValuePair> formParams = new ArrayList<NameValuePair>(); formParams.add(new BasicNameValuePair("param1", "***")); UrlEncodedFormEntity urlEncodedFormEntity; try { urlEncodedFormEntity = new UrlEncodedFormEntity(formParams, "UTF-8"); httpPost.setEntity(urlEncodedFormEntity); System.out.println("execurting request:" + httpPost.getURI()); HttpResponse httpResponse = null; httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); if (httpEntity != null) { String content = EntityUtils.toString(httpEntity, "UTF-8"); System.out.println("Response content:" + content); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { //关闭连接,释放资源 httpClient.getConnectionManager().shutdown(); } }}
- httpClient----java基础
- Java基础:利用HttpClient获取网页内容
- Java基础:利用HttpClient获取网页内容
- HttpClient基础
- HttpClient基础
- HttpClient基础
- httpclient基础
- HttpClient基础
- HttpClient 基础
- HttpClient 基础
- HttpClient基础
- HttpClient基础
- httpclient基础
- JAVA HTTPCLIENT
- java httpClient
- HttpClient基础入门
- (转)HttpClient基础
- HttpClient使用基础
- 死锁的条件
- Object-C 获得系统自带的字体
- OCP-043 LIST in RMAN repository
- 批处理学习笔记。
- 实例解析linux内核I2C体系结构(1)
- httpClient----java基础
- Map.Entry 类使用简介
- 实例解析linux内核I2C体系结构(2)
- IEEE_TPAMI. Normalized Cuts and Image Segmentation. 2000
- openstack essex版安装(5)——dashboard安装
- C++防灾——为指针成员分配专门的存储空间
- 文件名排序批处理。
- 字符串替换函数 StringReplace
- java的时间格式化