http请求工具类

import org.apache.log4j.Logger;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.URL;import java.net.URLConnection;

public class HttpTools {

private HttpTools(){}

private static final Logger logger = Logger.getLogger(HttpTools.class);

public static String httpGet(String url,String charset){        logger.debug("发送 http get 请求 , URL : " + url);        String result = "";        BufferedReader in = null;        try {            String urlNameString = url;            URL realUrl = new URL(urlNameString);            URLConnection connection = realUrl.openConnection();            connection.setRequestProperty("accept", "*/*");            connection.setRequestProperty("connection", "Keep-Alive");            connection.connect();            in = new BufferedReader(new InputStreamReader(                    connection.getInputStream(),charset));            String line;            while ((line = in.readLine()) != null) {                result += line;            }        } catch (Exception e) {            logger.error("发送GET请求出现异常!", e);        }        finally {            try {                if (in != null) {                    in.close();                }            } catch (Exception e2) {                logger.error(e2.getMessage(),e2);            }        }        logger.debug("响应报文: " + result);        return result;    }

public static String httpGet(String url){        return httpGet(url,"UTF-8");    }

public static String httpPost(String url, String data){        return httpPost(url, data,"UTF-8");    }

public static String httpPost(String url, String data,String charset){        logger.debug("发送 http post 请求 , URL : " + url);        logger.debug("请求体: " + data);        OutputStream out = null;        BufferedReader in = null;        String result = "";        try {            URL realUrl = new URL(url);            URLConnection conn = realUrl.openConnection();            conn.setRequestProperty("accept", "*/*");            conn.setRequestProperty("connection", "Keep-Alive");            conn.setDoOutput(true);            conn.setDoInput(true);            out = conn.getOutputStream();            out.write(data.getBytes(charset));            out.flush();            in = new BufferedReader(                    new InputStreamReader(conn.getInputStream(),charset));            String line;            while ((line = in.readLine()) != null) {                result += line;            }        } catch (Exception e) {            logger.error("发送 POST 请求出现异常!", e);        }        finally{            try{                if(out!=null){                    out.close();                }                if(in!=null){                    in.close();                }            }            catch(IOException ex){                logger.error(ex.getMessage(),ex);            }        }        logger.debug("响应报文: " + result);        return result;    }

}
时间: 2024-10-17 20:20:07

http请求工具类的相关文章

我的Android进阶之旅------>Android关于HttpsURLConnection一个忽略Https证书是否正确的Https请求工具类

下面是一个Android HttpsURLConnection忽略Https证书是否正确的Https请求工具类,不需要验证服务器端证书是否正确 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.UnsupportedEn

iOS_21团购_通过block对请求工具类的代理方法进行二次封装

最终效果图: [点评]提供的工具类DPAPI 在请求完毕后,使用的是代理机制,当一次请求成功或者失败时,会调用代理的相应方法 为了将点评提供的工具类DPAPI进行二次封装, 再次定义了一个block: typedef  void(^RequestDoneCallBackBlock)(id deals,NSError *err); 该block有两个参数, 分别是成功时,服务器返回的deals字典数组 另一个参数是:请求失败时,服务器返回的失败信息 两个参数分别对应代理的两个方法(即成功.失败时分

java jdk原生的http请求工具类

package com.base; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.Reader; import java.net.HttpURLConnection; import java.net.SocketTimeoutException; import java.net

发送请求工具类

采用HttpClient与远程服务器通信,所以定义一个工具类对HttpClient进行封装getRequest():发送get请求postRequest():发送post请求 FutureTask(Callable<V> callable)  //创建一个 FutureTask,一旦运行就执行给定的 Callable. FutureTask(Runnable runnable, V result)   //创建一个 FutureTask,一旦运行就执行给定的 Runnable,并安排成功完成时

Java http请求工具类

该工具类可以调用POST请求或者Get请求,参数以Map的方式传入,支持获获取返回值,返回值接收类型为String HttpRequestUtil.java package com.util; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.List;import java.ut

Java HttpClient4.2.x版本get、post请求工具类

公司业务需要,跟很多公司合作,经常需要请求外部http接口,而项目架构是一个比较老的框架整合,仅http请求的工具类就很多个,显得杂乱无章: 有些接口测试时,对方做了IP白名单限制的,ZIP压缩等要求,现有的http工具类无法满足要求,又不能去修改,因为很多地方在用:想引入最新HttpClient版本的依赖,确发现与现有的jar包冲突: 无耐只能使用现有的jar重新封装,具体代码演示如下: post请求方式1 /*** POST请求,超时时间必须设置* @param url* @param js

网络请求工具类WebServiceUtils

如果对WebService一无所知的话,建议先看看这两篇博客,对你WebService很有帮助. http://blog.csdn.NET/eyu8874521/article/details/9125987 http://blog.csdn.net/xiaanming/article/details/16871117 本人也是菜鸟一名,WebService已经是很老的技术了,但现在仍有使用,刚开始接触的时候,是无从入手呀,看了上面几篇文章以后,渐渐的会使用了,这里感谢网上开源的作者和文章,网上

HttpInvoker http请求工具类

1 import java.io.BufferedReader; 2 import java.io.DataOutputStream; 3 import java.io.IOException; 4 import java.io.InputStreamReader; 5 import java.net.HttpURLConnection; 6 import java.net.URL; 7 import java.util.Map; 8 9 /** 10 * HTTP请求类 11 * @autho

基于AFNetworking封装的网络请求工具类

前提,导入AFNetworking框架 关于修改AFN源码:通常序列化时做对text/plan等的支持时,可以一劳永逸的修改源代码,在acceptableContentTypes中修改即可. GGRequest.h 1 #import <Foundation/Foundation.h> 2 3 @interface GGRequest : NSObject 4 /** 5 * 网络请求方法 6 * 7 * @param url 将要访问的链接 8 * @param param 传入的参数 9

https请求工具类

import java.io.IOException;import java.io.UnsupportedEncodingException;import java.lang.reflect.Field;import java.security.KeyManagementException;import java.security.NoSuchAlgorithmException;import java.security.cert.CertificateException;import java