Java http get与post请求

来源:互联网 发布:java的集成开发环境 编辑:程序博客网 时间:2024/05/22 15:41
</pre><pre name="code" class="java">
package com.hongyue.ai.utils; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; 
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; 
 
/** 
 * HTTP通讯组件  *  
 * @author <a href="mailto:cairenxi@viewlinecn.com">蔡仁西</a>  * @version 1.0  */ 
public class HttpUtils {  /** 
  * 客户端用Post方法向服务器提交请求,并获取服务器响应信息   *  
  * @param request   * @param response   * @param s   */ 
 public static String reqForPost(String postURL, String context) {  
 
try { 
      URL url = new URL(postURL); 
      URLConnection urlConn = url.openConnection(); 
      
HttpURLConnection httpUrlConn = (HttpURLConnection) urlConn; 
            // 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在       // http正文内,因此需要设为true, 默认情况下是false;       
httpUrlConn.setDoOutput(true); 
            // 设置是否从httpUrlConnection读入,默认情况下是true       
httpUrlConn.setDoInput(true); 
            // Post 请求不能使用缓存       httpUrlConn.setUseCaches(false);       // 设定请求的方法为"POST",默认是GET       httpUrlConn.setRequestMethod("POST");     
 
 
      OutputStreamWriter wr = new OutputStreamWriter(httpUrlConn.getOutputStream());       wr.write(context);       wr.flush(); 
      
BufferedReader in = new BufferedReader(new InputStreamReader(httpUrlConn 

.getInputStream())); 
      String line; 
      StringBuffer sb = new StringBuffer();       while ((line = in.readLine()) != null) {        sb.append(line); 
      }       wr.close();       in.close(); 
       
      return StringUtils.trimToEmpty(sb.toString());   } catch (Exception e) {    e.printStackTrace(); 
  } 
   
  return ""; 
 } 
  
 /** 
  * 客户端用Get方法向服务器提交请求,并获取服务器响应信息   *  
  * @param request   * @param response   * @param s   */ 
 public static String reqForGet(String getURL) {  
 
try { 
      URL url = new URL(getURL); 
      URLConnection urlConn = url.openConnection(); 
      
HttpURLConnection httpUrlConn = (HttpURLConnection) urlConn; 
            // 默认情况下是false;       
httpUrlConn.setDoOutput(false); 
            // 设置是否从httpUrlConnection读入,默认情况下是true       
httpUrlConn.setDoInput(true); 
            // Get 请求不能使用缓存       httpUrlConn.setUseCaches(false);       // 设定请求的方法为"GET",默认是GET       httpUrlConn.setRequestMethod("GET"); 
      BufferedReader in = new BufferedReader(new InputStreamReader(httpUrlConn        
 
.getInputStream())); 
      String line; 
      StringBuffer sb = new StringBuffer();       while ((line = in.readLine()) != null) {        sb.append(line); 
      

      in.close(); 
      return StringUtils.trimToEmpty(sb.toString());   } catch (Exception e) {    e.printStackTrace(); 
  }   return ""; 
 }  /** 
  * 从输入流中读入数据   *  
  * @param request   * @param response   * @param s   */ 
 public static String readBuffer(InputStreamReader in) {   try {    BufferedReader reader = new BufferedReader(in);    String line = ""; 
   StringBuffer sb = new StringBuffer();    while ((line = reader.readLine()) != null) {     sb.append(line); 
   } 
   
return StringUtils.trimToEmpty(sb.toString()); 
  } catch (Exception e) {    e.printStackTrace(); 
  }   return ""; 
 }  /**   *  响应调用者   *     * @param req   * @param res   * @param s   */ 
 public static void res2Client(HttpServletRequest req,    
HttpServletResponse res, String s) {   try {    res.setContentType("text/plain;charset=gb2312");    PrintWriter out = res.getWriter();    out.print(s);    out.flush();    
out.close();
} catch (Exception e) { 
   e.printStackTrace(); 
  } 
 } 
  
 /** 
  *  获取请求客户端IP(包括穿透nginx集群代理)   */ 
 public static String getRemoteAddr(HttpServletRequest req) {   String ip = req.getHeader("x-forwarded-for"); 
  if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {    ip = req.getHeader("Proxy-Client-IP"); 
  } 
  if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {    ip = req.getHeader("WL-Proxy-Client-IP");   } 
  if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {    ip = req.getRemoteAddr(); 
  }   return ip; 
 } 
  
 public static void main(String[] args) {  
 
String url = 
"http://61.152.167.97/TaoBaoInterface/billQuery.do?billNo=010027078277&Key=VbmYfP6SeO6apmRAmgg67Q==";   String ret  =HttpUtils.reqForGet(url);   System.out.println(ret); 
 

 
}

0 0