使用HttpClient与外部接口通信

来源:互联网 发布:蜂窝网络和移动网络 编辑:程序博客网 时间:2024/04/29 15:09

使用 HttpClient与外部接口通信工具类:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.URL;import java.net.URLConnection;import java.util.Iterator;import java.util.Map;import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.methods.PostMethod;import org.apache.commons.httpclient.params.HttpMethodParams;public class HttpUtil{   public static String httpPost(String urlPath,Map<String, Object> params){   PrintWriter out = null;     BufferedReader in = null;     StringBuffer result = new StringBuffer();     try {     HttpClient client = new HttpClient();          PostMethod method = new PostMethod(urlPath);       Iterator<Map.Entry<String, Object>> it = params.entrySet().iterator();     while (it.hasNext()) {        Map.Entry<String, Object> entry = it.next();        method.addParameter(entry.getKey(), entry.getValue().toString());        }         HttpMethodParams param = method.getParams();       param.setContentCharset("UTF-8");       client.executeMethod(method);         in = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream(), "UTF-8"));           String line;           while (null != (line = in.readLine())) {           result.append(line);          }        } catch (Exception e) {           e.printStackTrace();      }        //使用finally块来关闭输出流、输入流        finally{            try{                if(out!=null){                    out.close();                }                if(in!=null){                    in.close();                }            }            catch(IOException ex){                ex.printStackTrace();            }        }     return result.toString();}   public static String httpGet(String urlPath){          StringBuffer result = new StringBuffer();        BufferedReader in = null;        try {             URL realUrl = new URL(urlPath);            // 打开和URL之间的连接            URLConnection conn = realUrl.openConnection();            // 设置通用的请求属性            conn.setRequestProperty("accept", "*/*");            conn.setRequestProperty("connection", "Keep-Alive");            conn.setRequestProperty("user-agent",                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");            // 建立实际的连接            conn.connect();             // 定义 BufferedReader输入流来读取URL的响应            in = new BufferedReader(new InputStreamReader(            conn.getInputStream(),"utf-8"));            String line;            while ((line = in.readLine()) != null) {            result.append(line);            }         } catch (Exception e) {             e.printStackTrace();        }        // 使用finally块来关闭输入流        finally {            try {                if (in != null) {                    in.close();                }            } catch (Exception e2) {                e2.printStackTrace();            }        }         return result.toString();}  }


0 0