public static String doGet(String url, String charset) {

//1.生成HttpClient对象并设置参数

HttpClient httpClient = new HttpClient();

//设置Http连接超时为5秒

httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);

//2.生成GetMethod对象并设置参数

GetMethod getMethod = new GetMethod(url);

//设置get请求超时为5秒

getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 5000);

//设置请求重试处理,用的是默认的重试处理:请求三次

getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());

String response = "";

//3.执行HTTP GET 请求

try {

int statusCode = httpClient.executeMethod(getMethod);

//4.判断访问的状态码

if (statusCode != HttpStatus.SC_OK) {

System.err.println("请求出错:" + getMethod.getStatusLine());

}

//5.处理HTTP响应内容

//HTTP响应头部信息,这里简单打印

Header[] headers = getMethod.getResponseHeaders();

for(Header h : headers) {

System.out.println(h.getName() + "---------------" + h.getValue());

}

//读取HTTP响应内容,这里简单打印网页内容

//读取为字节数组

byte[] responseBody = getMethod.getResponseBody();

response = new String(responseBody, charset);

System.out.println("-----------response:" + response);

//读取为InputStream,在网页内容数据量大时候推荐使用

//InputStream response = getMethod.getResponseBodyAsStream();

} catch (HttpException e) {

//发生致命的异常,可能是协议不对或者返回的内容有问题

System.out.println("请检查输入的URL!");

e.printStackTrace();

} catch (IOException e) {

//发生网络异常

System.out.println("发生网络异常!");

} finally {

//6.释放连接

getMethod.releaseConnection();

}

return response;

}

public static String doPost(String url, JSONObject json){

HttpClient httpClient = new HttpClient();

PostMethod postMethod = new PostMethod(url);

postMethod.addRequestHeader("accept", "*/*");

postMethod.addRequestHeader("connection", "Keep-Alive");

//设置json格式传送

postMethod.addRequestHeader("Content-Type", "application/json;charset=GBK");

//必须设置下面这个Header

postMethod.addRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36");

//添加请求参数

postMethod.addParameter("commentId", json.getString("commentId"));

String res = "";

try {

int code = httpClient.executeMethod(postMethod);

if (code == 200){

res = postMethod.getResponseBodyAsString();

System.out.println(res);

}

} catch (IOException e) {

e.printStackTrace();

}

return res;

}

java httpclient 包_java实现http请求之HttpClient相关推荐

  1. java 图像识别包_Java基于百度API的图片文字识别免费源码和jar包

    1.准备工作(jdk1.8) 使用之前需要获取对应的项目API_KEY,SECRET_KEY,这些参数在使用API的时候必须用到,用于生成access_token. 如何获取这些参数? 登陆后创建一个 ...

  2. java md5包_JAVA中有没有提供MD5算法的包啊?

    拉莫斯之舞 有,在java.security包的MessageDigest类.例子:import java.security.MessageDigest;public class Test2 {pub ...

  3. java 不同包_Java项目中不同包的命名及作用

    ①在vo或者domain包中定义bean类,主要是类的属性,这个类跟数据库中的某个表的字段一致. ②dao包中主要是存放用于操作数据库完成业务逻辑方法的接口. ③dao.impl这个包存放着这样的一个 ...

  4. java.awt包_java.awt包介绍

    组件, Component类是所有AWT组件的根. 用户与组件交互操作时,一些组件会激发事件, AWTEvent类及其子类用于表达AWT组件能够激发的事件. 容器是一个可以含有组件和其他容器的组件, ...

  5. java.awt包_java.awt包 简介

    java.awt有创建用户接口.绘图和图像的所有类.用户接口对象,例如按钮或滚动条, 在AWT(Abstrat Window Toolkit)中被称为组件, Component类是所有AWT组件的根. ...

  6. java解包_Java的原始类型自动包装与解包机制

    java5之后对原始数据类型如int.char.long等基本数据类型有自动打包成相应的复合类型Integer.Character.Long等的机制:也可以将复合类型自动转换为原始类型. 这取决于程序 ...

  7. java newinstance 包_Java Class类 newInstance()方法及示例

    Class类newInstance()方法newInstance()方法在java.lang包中可用. newInstance()方法用于创建此Class对象表示的类的新实例. newInstance ...

  8. java http 包_java http请求

    [java]代码库package com.test; import java.io.BufferedReader; import java.io.IOException; import java.io ...

  9. java unit包_Java接入UNIT文本对话处理源码详解

    应邀一位网友的想法,想实现调用UNIT接口,实现文字对话功能,特整理一下内容分享给大家. 此功能对于大神来说非常简单,但是对于新手理解代码处理逻辑,并且如何解析UNIT返回参数的处理,还是有一定的帮助 ...

最新文章

  1. Git命令集十五——拉取命令
  2. python数据分析可视化实例_Python数据分析及可视化实例之基于Kmean分析RFM进行用户关怀...
  3. ts可展开注释_TS语法之装饰器(注解)
  4. 使用SharedPreference保存用户数据的步骤
  5. navicat超时未激活如何处理?
  6. 专用计算机数控编程软件有哪些,大家都用什么数控编程软件
  7. c语言alt 小键盘,ALT+小键盘输入《泡MM好招》
  8. php chr 1,PHP chr()用法及代码示例
  9. prettier工具格式化
  10. AE动画怎么导出?4种常见导出方式汇总
  11. iphone4s更换电池_更换iPhone电池有多困难?
  12. WebApp网页真机调试工具-(Android)
  13. Azure function app的使用
  14. 研究型论文_CICIDS2017 数据集中基于异常的入侵检测系统的机器学习基准测试(英文论文)
  15. 在ArcGIS中批量删除属性表字段
  16. Android编译chromium
  17. Robomongo连接远程MongoDB数据库
  18. 成败不在于公有云,而在GE一念之间
  19. layui 翻页记住选择
  20. Android开源项目分类总结(转)

热门文章

  1. Q127:PBRT-V3,理解“体渲染”积分器的关键竟然是这张图
  2. 问题六十八:光照模型(Light model)——关于“环境光”模型的补充
  3. 工业大数据的应用有哪些
  4. 数据治理为何越来越重要
  5. Scala学习(一、环境配置和基础)
  6. photon 服务器操作系统,photon 云服务器
  7. arch linux u盘安装,安装 ArchLinux 到U盘(四)安装Archlinux
  8. python实现excel数据透视_在pywin32中创建Excel数据透视缓存
  9. mongo 多条件筛选_Excel筛选功能,你确定这些小技巧你都玩明白了
  10. python unicode编码转换中文_Python入门高级教程--Python 中文编码