为什么80%的码农都做不了架构师?>>>   

最近这两天帮忙调试接口,用到了httpclient ,自己参照网上方法编写个小例子 ,方便以后查看

-----

/*** 远程访问调用方法工具类* * @author yangy* */
public class RemoteRequestUtils
{public static void main(String[] args) throws HttpException, IOException{getRequest(null);}/*** 远程get请求 方法直接打印返回结果* * @param url* @param parmete* @throws IOException* @throws HttpException* @throws Exception*/public static void getRequest(String url) throws HttpException, IOException{// 创建请求对象HttpClient client = new HttpClient();client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"utf-8");//设置超时时间client.getParams().setSoTimeout(2000);// 创建远程访问GetMethod method = new GetMethod(url);// 设置成了默认的恢复策略,在发生异常时候将自动重试3次,在这里你也可以设置成自定义的恢复策略method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,new DefaultHttpMethodRetryHandler());// 执行getMethodint statusCode = client.executeMethod(method);if (statusCode != HttpStatus.SC_OK){System.err.println("Method failed: " + method.getStatusLine());}//获取数据String responseBody = readInputStream(method.getResponseBodyAsStream());System.out.println(" Remoter request success :" + responseBody);// 释放连接method.releaseConnection();}/*** 远程post请求 方法直接打印返回结果* * @param url* @param parmete* @throws IOException* @throws HttpException*/public static void postRequest(String url, NameValuePair[] data)throws HttpException, IOException{// 创建请求对象HttpClient httpClient = new HttpClient();// 设置超时时间httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(20000);// 创建POST对象UTF8PostMethod postMethod = new UTF8PostMethod(url);// 设置成了默认的恢复策略,在发生异常时候将自动重试3次,在这里你也可以设置成自定义的恢复策略postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,new DefaultHttpMethodRetryHandler());// 将表单的值放入postMethod中postMethod.setRequestBody(data);// 执行postMethodint statusCode = httpClient.executeMethod(postMethod);// HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发System.out.println(statusCode);String location = "";// 返回返回结果if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY|| statusCode == HttpStatus.SC_MOVED_TEMPORARILY){// 从头中取出转向的地址Header locationHeader = postMethod.getResponseHeader("location");if (locationHeader != null){location = locationHeader.getValue();System.out.println("The page was redirected to:" + location);} else{System.err.println("Location field value is null.");}} else if (statusCode == HttpStatus.SC_OK) // 返回为连接成功{// 此处修改为返回为输入流 避免大数量时出错 消耗内存String responseBody = readInputStream(postMethod.getResponseBodyAsStream());System.out.println(" Remoter request success :" + responseBody);}// 释放连接postMethod.releaseConnection();}/*** 转换Inputstram为字符串* * @param responseBody* @return * @throws IOException*/private static String readInputStream(InputStream responseBody)throws IOException{//创建字符串数读取缓存BufferedReader buffre = new BufferedReader(new InputStreamReader(responseBody,"utf-8")); //使用utf-8 避免出现乱码//创建缓存字符串StringBuffer resBuffer = new StringBuffer(10000);String resTemp = "";while ((resTemp = buffre.readLine()) != null){resBuffer.append(resTemp).append("\n"); //读取字符流中数据 目前测试可能存在换行添加}return resBuffer.toString();}}

目前代码能够执行成功, 蛋痛的是 调用对方接口 每次一调用他们的系统就挂掉...

转载于:https://my.oschina.net/luckyi/blog/69188

httpclient 小例子编写相关推荐

  1. php函数的默认值,php函数指定默认值方法的小例子

    php函数指定默认值方法的小例子 本节内容: php函数指定默认值 在php编程中,为自定义函数设定默认值,当用户调用该函数时,如果不给参数指定值,参数会用默认值顶替. 例1, 复制代码 代码如下: ...

  2. Hadoop中RPC协议小例子报错java.lang.reflect.UndeclaredThrowableException解决方法

    最近在学习传智播客吴超老师的Hadoop视频,里面他在讲解RPC通信原理的过程中给了一个RPC的小例子,但是自己编写的过程中遇到一个小错误,整理如下: log4j:WARN No appenders ...

  3. 告别刷抖音!30秒一个Python小例子,总有一款适合你

    小编每天上班坐地铁,不是刷抖音就是煲电视剧,不是我不想学习,主要是短视频太好看了,30秒一个,刷刷刷的不停啊.如果Python也有30秒学习的小例子,我也一定会看呢. 于是小编收录整理了一些30秒一个 ...

  4. (4)nginx:日志以及定时切割日志小例子

    一 关于Nginx日志 我们观察nginx安装目录下的nginx.conf 可以看到如下类似信息 #access_log  logs/host.access.log  main; 这说明 该serve ...

  5. 五个小例子教你搞懂 JavaScript 作用域问题

    原文:五个小例子教你搞懂 JavaScript 作用域问题 众所周知,JavaScript 的作用域和其他传统语言(类C)差别比较大,掌握并熟练运用JavaScript 的作用域知识,不仅有利于我们阅 ...

  6. 告别刷抖音!30秒一个Python小例子,总有一款适合你,赶紧收藏!

    小编每天上班坐地铁,不是刷抖音就是煲电视剧,不是我不想学习,主要是短视频太好看了,30秒一个,刷刷刷的不停啊.如果Python也有30秒学习的小例子,我也一定会看呢. 于是小编收录整理了一些30秒一个 ...

  7. C# 实现 rtc_通过Xlua实现unity热更新的一个小例子

    通过Xlua实现unity热更新的一个小例子 一.介绍 ​ 热更新是指在更新游戏资源或者逻辑的时候不需要开发者将游戏再打包.发布.玩家重新下载安装包,而是可以通过将需要更新的资源打包成AssetBun ...

  8. unity案例 mysql lua_通过Xlua实现unity热更新的一个小例子

    通过Xlua实现unity热更新的一个小例子 一.介绍 ​ 热更新是指在更新游戏资源或者逻辑的时候不需要开发者将游戏再打包.发布.玩家重新下载安装包,而是可以通过将需要更新的资源打包成AssetBun ...

  9. 有趣的python代码实例_Python之路:200个Python有趣的小例子一网打尽

    概述 博主最近在学习python,看完了一整套学习视频,然后呃呃呃,还是用不太流畅.碰巧在全球最大的 同性交友论坛GayHub(呸!是开源代码托管平台Github)上面发现了一个项目,该项目列举了20 ...

最新文章

  1. 以上帝模式管理Windows系统
  2. WPF canvas、基本图形、path几个示例
  3. [云炬创业学笔记]第二章决定成为创业者测试1
  4. 微信浏览器打开网页被拦截了?Mindjump快速解决微信屏蔽网址用户打不开的难题...
  5. YbtOJ#912-神秘语言【结论,欧拉定理】
  6. HDOJ 1863畅通工程(最小生成树kruskal算法并查集实现)
  7. 路由器05---多拨
  8. 如何在 Windows XP Service Pack 2 上启用 SQL Server 连接
  9. 异常Exception(Java)
  10. android 动画之漂移,Android之自定义Drawable实现灵动的红鲤鱼动画(上篇)
  11. java 参数传值的练习题及答案_04_javaSE面试题:方法的参数传递机制
  12. JAVA 仿QQ聊天程序
  13. 雷达点云地图数据处理
  14. 计算机创客教育,浅析职业教育中计算机学科的创客教育
  15. 批量给 Word、PPT 和 PDF 插入封面或新的页面
  16. cad卸载不干净_BarTender卸载卸不干净的解决技巧
  17. Hikvision (海康威视) 摄像机码率上限设置
  18. Linux开机密码重置
  19. 模糊图片怎么变清晰?好用的方法教程来了
  20. python命名规则数字开头的成语_浅谈Python中带_的变量或函数命名

热门文章

  1. VTK:Points之PoissonExtractSurface
  2. VTK:Points之PointOccupancy
  3. VTK:IO之ReadDICOMSeries
  4. QML创建C ++插件
  5. Qt Creator编辑MIME类型
  6. OpenGL 绘制grass草的实例
  7. C++演示std :: sort(),std :: reverse()的函数(附完整源码)
  8. python四舍五入round_四舍五入就用round( )?Python四舍五入的正确打开方式!
  9. android avd orientation support,Android AVD-无法旋转风景/人像
  10. 6种CSS控制元素上下居中效果