HttpClient 教程

1. 使用HttpClient

public static String methodGet(String reqUrl) {
  String result = "";
  HttpClient httpClient = new DefaultHttpClient();
  HttpGet httpGet = new HttpGet(reqUrl);
  httpGet.getParams().setParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET, "UTF-8");
  try {
    HttpResponse httpResponse = httpClient.execute(httpGet);
    if (httpResponse.getStatusLine().getStatusCode() == 200) {
      HttpEntity entity = httpResponse.getEntity();
      result = EntityUtils.toString(entity, HTTP.UTF_8);// 返回的结果集
    }
  } catch (ClientProtocolException e) {
    e.printStackTrace();
  } catch (IOException e) {
    e.printStackTrace();
  }
  return result;
}

public static String methodPost(){
  String result = "";
  String url = "";
  HttpClient httpClient = new DefaultHttpClient();
  HttpPost httpPost = new HttpPost(url);
  List<NameValuePair> params = new ArrayList<NameValuePair>();
  params.add(new BasicNameValuePair("cp_id", "")); //传递的参数,类似map

  try {
    httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
    HttpResponse httpResponse = httpClient.execute(httpPost);
    if (httpResponse.getStatusLine().getStatusCode() == 200) {
      HttpEntity entity = httpResponse.getEntity();
      result = EntityUtils.toString(entity, HTTP.UTF_8); // 返回的json
      System.out.println(result);
    }
  } catch (Exception e) {
  }
  return result;
}

2.基础版本

public static String invidePost(String data){
  PrintWriter out=null;
  BufferedReader in =null;
  String result = "";
  try {
    URL realUrl=new URL("http://yrt.51haoyitou.com/api/spreadUserData?startday=2016-09-05&endday=2016-            09- 05&sign=9c7c03693dedf82587a43b05ac892ca3&type=38");
    URLConnection conn=realUrl.openConnection();

    // 设置通用的请求属性
    conn.setRequestProperty("accept", "*/*");
    conn.setRequestProperty("connection", "Keep-Alive");
    conn.setRequestProperty("user-agent",
    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
    // 发送POST请求必须设置如下两行
    conn.setDoOutput(true);
    conn.setDoInput(true);

    out = new PrintWriter(conn.getOutputStream());

    // 发送请求参数
    //out.print("dt={\"p1\":\"094\",\"p2\":\"admin\",\"p3\":\"10050\",\"p4\":\"192.168.1.1\"}");
    //out.print("dt="+data);
    // flush输出流的缓冲
    out.flush();
    // 定义BufferedReader输入流来读取URL的响应
    in = new BufferedReader(
    new InputStreamReader(conn.getInputStream(),"utf-8"));
    String line;
    while ((line = in.readLine()) != null) {
      result += line;
    }

    System.out.println(result);
  } catch (MalformedURLException e) {
    e.printStackTrace();
  } catch (IOException e) {
    e.printStackTrace();
  }
  finally{
    try{
      if(out!=null){
        out.close();
      }
      if(in!=null){
        in.close();
      }
    }
    catch(IOException ex){
      ex.printStackTrace();
    }
  }
  return result;
}

时间: 2024-10-10 02:10:17

HttpClient 教程的相关文章

HttpClient教程

HttpClient教程 2017-03-29 官方文档:http://hc.apache.org/httpcomponents-client-ga/ HttpClient Tutorial翻译文档: 第一章 基础 第二章 连接管理 第三章 HTTP状态管理 第四章 HTTP认证 第五章 HTTP客户端服务 第六章 高级主题 封装HttpClient 轻松把玩HttpClient之封装HttpClient工具类

HttpClient 教程 (一)

前言 超文本传输协议(HTTP)也许是当今互联网上使用的最重要的协议了.Web服务,有网络功能的设备和网络计算的发展,都持续扩展了HTTP协议的角色,超越了用户使用的Web浏览器范畴,同时,也增加了需要HTTP协议支持的应用程序的数量. 尽管java.net包提供了基本通过HTTP访问资源的功能,但它没有提供全面的灵活性和其它很多应用程序需要的功能.HttpClient就是寻求弥补这项空白的组件,通过提供一个有效的,保持更新的,功能丰富的软件包来实现客户端最新的HTTP标准和建议. 为扩展而设计

读书《HttpClient 教程》

前言 尽管java.net包提供了基本通过HTTP访问资源的功能,但它没有提供全面的灵活性和其它很多应用程序需要的功能.HttpClient就是寻求弥补这项空白的组件,通过提供一个有效的,保持更新的,功能丰富的软件包来实现客户端最新的HTTP标准和建议. 1. HttpClient的范围 ? 基于HttpCore[http://hc.apache.org/httpcomponents-core/index.html]的客户端HTTP运输实现库 ? 基于经典(阻塞)I/O ? 内容无关 2. 什么

HttpClient 教程 (A)

前言 超文本传输协议(HTTP)也许是当今互联网上使用的最重要的协议了.Web服务,有网络功能的设备和网络计算的发展,都持续扩展了HTTP协议的角色,超越了用户使用的Web浏览器范畴,同时,也增加了需要HTTP协议支持的应用程序的数量. 尽管java.net包提供了基本通过HTTP访问资源的功能,但它没有提供全面的灵活性和其它很多应用程序需要的功能.HttpClient就是寻求弥补这项空白的组件,通过提供一个有效的,保持更新的,功能丰富的软件包来实现客户端最新的HTTP标准和建议. 为扩展而设计

HttpClient 教程 (二)

第二章 连接管理 HttpClient有一个对连接初始化和终止,还有在活动连接上I/O操作的完整控制.而连接操作的很多方面可以使用一些参数来控制. 2.1 连接参数 这些参数可以影响连接操作: 'http.socket.timeout':定义了套接字的毫秒级超时时间(SO_TIMEOUT),这就是等待数据,换句话说,在两个连续的数据包之间最大的闲置时间.如果超时时间是0就解释为是一个无限大的超时时间.这个参数期望得到一个java.lang.Integer类型的值.如果这个参数没有被设置,那么读取

HttpClient 教程 (三)

第三章 HTTP状态管理 原 始的HTTP是被设计为无状态的,面向请求/响应的协议,没有特殊规定有状态的,贯穿一些逻辑相关的请求/响应交换的会话.由于HTTP协议变得越来越普 及和受欢迎,越来越多的从前没有打算使用它的系统也开始为应用程序来使用它,比如作为电子商务应用程序的传输方式.因此,支持状态管理就变得非常必要了. 网 景公司,一度成为Web客户端和服务器软件开发者的领导方向,在它们基于专有规范的产品中实现了对HTTP状态管理的支持.之后,网景公司试图通过发布规 范草案来规范这种机制.它们的

转 使用 HttpClient 4 进行文件上传

http://www.tuicool.com/articles/Y7reYb 1. 概述 本教程我们将描述如何使用 HttpClient 4进行一次多文件上传操作 . 我们将使用  http://echo.200please.com  作为测试服务器,因为它是面向公众的,并且接受大多数类型的内容. 如果你想要深入学习并了解你可以使用  HttpClient 做到的其它很棒的事情  – 那就去看看 首要的 HttpClient 教程吧   . 2. 使用  AddPart  方法 让我们开始研究研

201621123042《java程序设计》第十三次作业

1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 为你的系统增加网络功能(购物车.图书馆管理.斗地主等)-分组完成 为了让你的系统可以被多个用户通过网络同时使用,需要为你的系统增加网络功能. 2.1 简述你想为你的系统增加什么网络功能?设计思路是什么? 答:为了能让购物车系统同时被多个客户端访问,使用多线程和TCP技术,创建一个Net类,在类中创建ServerSocket对象的套接字,再创建一个ThreadServer类来实现多线程. 2.2 系

HttpClient 4.3教程 第一章 基本概念

HttpClient 4.3教程 第一章 基本概念 Posted on 2013 年 10 月 9 日 1.1. 请求执行 HttpClient最基本的功能就是执行Http方法.一个Http方法的执行涉及到一个或者多个Http请求/Http响应的交互,通常这个过程都会自动被HttpClient处理,对用户透明.用户只需要提供Http请求对象,HttpClient就会将http请求发送给目标服务器,并且接收服务器的响应,如果http请求执行不成功,httpclient就会抛出异样. 下面是个很简单