/** * <p> * httpClient的get请求方式 * </p> * * @param url * = "https://www.99bill.com/webapp/receiveDrawbackAction.do"; * @param charset * = ="utf-8"; * @return * @throws Exception */ public static String sentGet(String url, String charset) throws Exception { HttpClient client = new HttpClient(); GetMethod method1 = new GetMethod(url); if (null == url || !url.startsWith("http")) { throw new Exception("请求地址格式不对"); } // 设置请求的编码方式 if (null != charset) { method1.addRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=" + charset); } else { method1.addRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=" + "utf-8"); } int statusCode = client.executeMethod(method1); if (statusCode != HttpStatus.SC_OK) { // 打印服务器返回的状态 System.out.println("Method failed: " + method1.getStatusLine()); } // 返回响应消息 byte[] responseBody = method1.getResponseBodyAsString().getBytes( method1.getResponseCharSet()); // 在返回响应消息使用编码(utf-8或gb2312) String response = new String(responseBody, "utf-8"); // 释放连接 method1.releaseConnection(); return response; } /** * <p> * httpClient的get请求方式2 * </p> * * @param url * = "https://www.99bill.com/webapp/receiveDrawbackAction.do"; * @param charset * = ="utf-8"; * @return * @throws Exception */ public static String sendGet2(String url, String charset) throws Exception { /* * 使用 GetMethod 来访问一个 URL 对应的网页,实现步骤: 1:生成一个 HttpClinet 对象并设置相应的参数。 * 2:生成一个 GetMethod 对象并设置响应的参数。 3:用 HttpClinet 生成的对象来执行 GetMethod 生成的Get * 方法。 4:处理响应状态码。 5:若响应正常,处理 HTTP 响应内容。 6:释放连接。 */ /* 1 生成 HttpClinet 对象并设置参数 */ 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("Method failed: " + 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); // 读取为 InputStream,在网页内容数据量大时候推荐使用 // InputStream response = getMethod.getResponseBodyAsStream(); } catch (HttpException e) { // 发生致命的异常,可能是协议不对或者返回的内容有问题 System.out.println("Please check your provided http address!"); e.printStackTrace(); } catch (IOException e) { // 发生网络异常 e.printStackTrace(); } finally { /* 6 .释放连接 */ getMethod.releaseConnection(); } return response; } /** * <p> * 执行一个HTTP POST请求,返回请求响应的HTML * </p> * * @param url * 请求的URL地址 * @param params * 请求的查询参数,可以为null * @param charset * 字符集 * @param pretty * 是否美化 * @return 返回请求响应的HTML */ public static String sendPost(String url, Map<String, String> params, String charset, boolean pretty) { StringBuffer response = new StringBuffer(); HttpClient client = new HttpClient(); HttpMethod method = new PostMethod(url); // 设置Http Post数据 if (params != null) { HttpMethodParams p = new HttpMethodParams(); for (Map.Entry<String, String> entry : params.entrySet()) { p.setParameter(entry.getKey(), entry.getValue()); } method.setParams(p); } try { client.executeMethod(method); if (method.getStatusCode() == HttpStatus.SC_OK) { // 读取为 InputStream,在网页内容数据量大时候推荐使用 BufferedReader reader = new BufferedReader( new InputStreamReader(method.getResponseBodyAsStream(), charset)); String line; while ((line = reader.readLine()) != null) { if (pretty) response.append(line).append( System.getProperty("line.separator")); else response.append(line); } reader.close(); } } catch (IOException e) { System.out.println("执行HTTP Post请求" + url + "时,发生异常!"); e.printStackTrace(); } finally { method.releaseConnection(); } return response.toString(); }
转载地址:http://blog.csdn.net/zheng2008hua/article/details/6054067
相关推荐
httpclient get/post请求工具类(map参数封装),方便调用
采用 HttpClient GET、POST 方式 提交数据到服务器
HttpClient实现POST GET和文件下载 HttpClient实现POST GET和文件下载
httpclient的用法,发送get请求和post请求,设置header
一个简单的易学的 基于HttpClient 4.3发送psot及get请求,返回数据,适合初学者,适合初学者
MFC使用H偷偷跑Client的GET和POST方法 MFC使用H偷偷跑Client的GET和POST方法
NULL 博文链接:https://javasam.iteye.com/blog/2117845
HttpClientUtil工具类发送get和post请求,支持http和https,支持发送文件
HttpClient get、post 请求,抓取网络数据,jar包以及源码
本代码是httpclient发送get请求和post请求demo,具体描述参考博客 HttpClient发送get请求和post请求
http请求工具类HttpClientUtil,get,post请求(csdn)————程序
HttpClient Post提交多文件及多个普通参数,已经封装成工具类。 需传入 要请求的url 普通参数map 例 map.put("param1","张三"); 需要传入的文件流map 其中key为文件名 服务端接收无乱码。
java HttpClient 发送GET请求和带有表单参数的POST请求教程例子
分别演示了android中Http和HttpClient的Get和Post方法的使用,还有加载图片的演示
Android-Httpclient_Get_Post
httpclient获取目标网站内容,get、post方式(可运行),可以通过配置参数、配置连接池实现
利用httpclient-4.3.1.jar、httpcore-4.3.jar包,很简单的用java实现httpget和httppost请求。
HttpClient模拟http发送post和get请求
HttpClient的简单使用,get、post、上传、下载。包含服务端和客户端代码