/**
     *
     * 依赖的夹包:coommons-httpclient-3.1.jar  commons-codec-1.7.jar
     * @param url
     * @param 参数是: url, json:json格式的字符串
     * @return
     */
    public static String doPost(String url,String json){
        String response="";

//创建HttpClient对象
        HttpClient httpClient = new HttpClient();
        httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(50000); // 连接5秒超时
        httpClient.getHttpConnectionManager().getParams().setSoTimeout(70000);// 读取30秒超时
 
        //通过PostMethod来创建链接,生成一个post请求
        PostMethod method=new PostMethod(url);
        try {

RequestEntity r=new StringRequestEntity(json);
            //RequestBody或是RequestEntity作用是提供传参,
            //method.setRequestBody(json);//只对整个body
            method.setRequestEntity(r);//可以是分段的内容,RequestEntity是一个接口,有很多实现可以传递不同类型的的参数
            //允许客户端或服务器中任何一方关闭底层的连接双方都会要求在处理请求后关闭它们的TCP连接
            method.setRequestHeader("Connection", "close");
            method.setRequestHeader("Content-type", "application/json; charset=UTF-8");
            //通过httpClient实例里的方法来实例化method
            httpClient.executeMethod(method);
            //读 response,返回的结果
            response = method.getResponseBodyAsString();
        } catch (HttpException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            //释放链接
            method.releaseConnection();
        }    
        return response;
    }

======================

注解:HttpClient使用的步骤一般是如下:

1. 创建 HttpClient 的实例

2. 创建某种连接方法的实例method 实例,例如 GetMethod、PostMethod, 在 method 实例 的构造函数中传入要连接的地址

3. 调用第一步中创建好的实例的 execute 方法来执行第二步中创建好的 method 实例
4. 读 response,获取返回数据
5. 释放连接。无论执行方法是否成功,都必须释放连接
6. 对得到后的内容进行处理

另外:PostMethod提供了方法来传递参数:setRequestBody和setRequestEntity(r)

RequestEntity的好处是有许多实现类来处理不同的资源

例如:你的参数是个流可以用InputStreamRequestEntity来构造RequestEntity

如果参数是字符串可以用StringRequestEntity来构造RequestEntity

如果是文件可以用FileRequestEntity来构造RequestEntity,还有其他的可以百度一下

====================实现方法如下====================

我是用的是Java,框架是spring+springMVC+mybitis

/**
 * 测试http请求
 * http://localhost:80/autopart/testhttp/testhttp1.do
 */
@RequestMapping("/testhttp")
@Controller
public class TestHttpController {
    @RequestMapping(value="/testhttp1")
    @ResponseBody
    public String testHello(HttpServletRequest request ,HttpServletResponse response){
        //String url="http://localhost:8080/blind/testhttp/testhttp1.do";
        String url="http://localhost:80/autopart/testhttp/testhttp2.do";
        String json= "{\"id\":1001,\"name\":\"蓝星\"}";
        String returns=HttpUtils.doPost(url, json);
        System.err.println(returns);
        return returns;
    }
    @ResponseBody
    @RequestMapping(value = "/testhttp2", method = {
            RequestMethod.GET, RequestMethod.POST }, produces = "application/json;charset=utf-8")
    public String testHello(@RequestBody Map map){
        String name=(String)map.get("name");
        System.out.println("id是:"+10+",name是:"+name);
        return "id是:"+10+",name是:"+name;
    }
}

注解:

我测试的方法是:写了一个测试类,通过第一个方法调用本类里的第二个方法通过http,调通就可以了

另外:上面第一个方法中注释的url,是我调用的别的项目里的方法,也调通了

大概做法是:在我的电脑上(Windows),D盘和F盘分别装了两个tomcat,启动两个eclipce,一个引用了D盘的tomcate,一个引用了F盘的tomcate

在两个eclipce中分别运行blind项目和autopart项目,从autopart项目中调用blind的方法,参数传到了blind项目的方法中,并得到了返回的信息打印在了autopart控制台上

这就简单实现了:同一个系统上不同服务器上的不同项目之间的信息传递,使用httpClient

转载于:https://www.cnblogs.com/xueershewang/p/6850037.html

HttpClient的简单实现相关推荐

  1. HttpURLConnection和HttpClient的简单用法

    HttpURLConnection的简单用法:先通过一个URL创建一个conn对象,然后就是可以设置get或者是post方法,接着用流来读取响应结果即可 String html = null;long ...

  2. java爬虫之基于httpclient的简单Demo(二)

    转载自 java爬虫之基于httpclient的简单Demo(二) 延续demo1的 java爬虫的2种爬取方式(HTTP||Socket)简单Demo(一),demo2出炉啦,大家想学爬虫都可以从这 ...

  3. HttpClient的简单使用

    目录 HttpClient的使用 一.maven坐标 二. 主要API 2.1 CloseableHttpClient 2.2 HttpClients 2.3 URIBuilder 2.4 HttpG ...

  4. httpclient 的简单示例

    2019独角兽企业重金招聘Python工程师标准>>> 建立project,从maven repositories中导入httpclient.版本 java 1.8  httpcli ...

  5. JAVA——基于HttpComponents(HttpClient)的简单网络爬虫DEMO

    基本概念 HttpComponents(HttpClient): 超文本传输​​协议(HTTP)可能是当今Internet上使用的最重要的协议.Web服务,支持网络的设备和网络计算的增长继续将HTTP ...

  6. HttpURLConnection与HttpClient提交FORM表单参数请求工具类

    来吧,小宝贝!!!!!!一个小白在项目过程中遇到的问题,给你们分享一下哈!!!!! 先看下我们请求的方式与请求体: 不难看出哈,请求的参数体并没有什么难点,那我为什么还要做一下总结呢?真的可能因为我太 ...

  7. Android客户端连接服务器- OKHttp的简单实用方法

    文章目录 一 .OKHttp简介 二. OkHttp3使用 1.创建HTTPClient实例 2.Get请求 3.POST请求 三.Timeouts(超时) **写在前面:本文只是对OKHttp3的简 ...

  8. JAVA网络爬爬学习之HttpClient+Jsoup

    JAVA网络爬爬学习 HttpClient用法简单整理 GET请求 无参 带参 POST请求 无参 带参 连接池 请求request的相关配置 httpclient用法详解 Jsoup用法简单整理 j ...

  9. 模拟登陆CSDN——就是这么简单

    工具介绍 本篇文章主要是讲解如何模拟登陆CSDN,使用的工具是HttpClient+Jsoup 其中HttpClient主要是负责发送请求,而Jsoup主要是解析HTML 你可能对HttpClient ...

  10. HttpComponents和HttpClient基本用法

    HttpClient是什么? HTTP 协议是 Internet 上使用得最多.最重要的协议之一,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源. 虽然在 JDK 的 jav ...

最新文章

  1. php 英文小写变大写,PHP英文字母大小写转换函数
  2. android检测蓝牙设备连接不上,Android检查设备连接状态
  3. python基础知识~ 函数详解2
  4. python PyQt5教程
  5. ie8下showmodaldialog页面回传会打开新页面的问题
  6. tarnado源码解析系列一
  7. 关于协方差矩阵需要注意的一个事项
  8. 前后端分离Java后端跨越问题解决
  9. Android 系统 (39)---OTA后启动第三方APP出现APP Crash
  10. 北京小哥在日本召唤出机器飞龙,拿下ICRA 2018最佳无人机论文
  11. 灾难性遗忘_谷歌大脑新研究:单一任务强化学习遇瓶颈?「灾难性遗忘」的锅!...
  12. 汇编中NEG和NOT的区别(汇编初学者简单笔记)
  13. 如何准备软件评测师考试
  14. 基于JAVA实现的WEB端UI自动化 -自动化测试简单介绍
  15. 2008'中国地理信息系统优秀工程公示
  16. 将OBJ 文件导入DAZ Studio
  17. Excel怎么换行?简单!Excel大神教会了我N种换行方法
  18. 「PAT乙级真题解析」Basic Level 1053 住房空置率 (问题分析+完整步骤+伪代码描述+提交通过代码)
  19. 手机录屏并转换成gif动图
  20. 数字ic2020海思提前批

热门文章

  1. Html5新特性 canvas画板画直线和等比缩放居中裁剪图片
  2. 智慧城市热度不减 产业资本进军智能汽车相关领域
  3. 递归大总结之斐波那契
  4. 分析oracle索引空间使用情况,以及索引是否须要重建
  5. eclipse Android开发——布局查看
  6. php.ini_中文详解
  7. 实施ERP过程中必须注意的“后天条件”
  8. Cesium 已知两点,计算以一个点为圆心,将另一个点旋转一定度数后的新点的坐标/position_A绕position_B逆时针旋转angle度(角度)得到新点 function rotatedPo
  9. HashTable源码
  10. Android lint工具 检查的常见问题