• org.apache.commons.httpclient.HttpClient的使用(转)


    HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和HTMLUnit 都使用了 HttpClient。现在HttpClient最新版本为 HttpClient 4.5 (GA) (2015-09-11)

    需要使用的jar包


    使用步骤,思路

     1, 创建Http客户端对象
     2, 设置请求的url,连接的地址
     3, 设置请求的方式(Get/Post),请求内容的类型,接收内容的类型,字符编码
     4, 设置请求参数(请求内容)
     5, 按请求的方式执行请求,返回Http状态码
     6, 获得响应内容
     7, 释放连接

    package com.httpclient1;

    import java.util.HashMap;
    import java.util.Map;

    import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.NameValuePair;
    import org.apache.commons.httpclient.URI;
    import org.apache.commons.httpclient.methods.PostMethod;
    import org.apache.commons.httpclient.params.HttpMethodParams;

    import com.google.gson.Gson;


    /**
    * 用commons-httpclient-3.1 框架, 模拟客户端请求
    * @since 2016-4-11
    * @version 1.0
    */
    public class Client {

    public static void main(String[] args) {
    String serviceUrl = "http://localhost:8080/MbtForSpring/test/demo/serviceOne.do";

    Map<String, Object> parames = new HashMap<String, Object>();
    Gson gson = new Gson();
    String json = null;
    try {
    parames.put("AppKey", "132152");
    parames.put("Ticket", "57077c8537");

    json = gson.toJson(parames);

    System.out.println("json:" + json);

    String str = doPost(serviceUrl, json);
    System.out.println(str);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    /**
    *
    * @param strUrl
    * @param postString
    * @return
    * String
    */
    @SuppressWarnings("deprecation")
    public static String doPost(String strUrl, String postString) {
    String receive = null;

    // 请求发布在本地 Tomcat上服务
    PostMethod method = new PostMethod(strUrl);
    // PostMethod method = new PostMethod();
    try {
    HttpClient client = new HttpClient();
    // client.getHostConfiguration().setHost(new HttpHost());

    //请求 网络上的服务, 用这种方式请求本地,返回一个Html页面
    // client.getHostConfiguration().setHost(new URI(strUrl));

    method.setRequestHeader("Content-type", "application/json; charset=UTF-8");
    method.setRequestHeader("Accept", "application/json; charset=UTF-8");
    // 设置为默认的重试策略
    method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());

    // 4, 设置请求参数(请求内容)
    /* NameValuePair pair1 = new NameValuePair("key", "value");
    NameValuePair pair2 = new NameValuePair("key", "value");
    method.setRequestBody(new NameValuePair[]{pair1, pair2} );*/

    method.setRequestBody(postString);
    int rspCode = client.executeMethod(method);
    //
    System.out.println("rspCode:" + rspCode);
    receive = method.getResponseBodyAsString();
    System.out.println("receive:" + receive);
    return receive;
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    method.releaseConnection();
    }
    return receive;
    }
    }

    原文:https://blog.csdn.net/sxchen_csdn/article/details/51144027

  • 相关阅读:
    Centos7下安装pip
    Docker进入容器后使用ifconfig等命令“command not found”解决办法
    安装包安装npm
    grafna与饼状图
    Postgresql导出数据报版本不对
    添加动物欢迎语
    zabbix性能优化记
    CPU使用情况之平均负载
    centos7以rpm方法装mysql5.7及大坑
    光速搭lvs + keepalived + nginx
  • 原文地址:https://www.cnblogs.com/qdck/p/10813045.html
Copyright © 2020-2023  润新知