java傳送http請求獲取響應結果【工具包系列】
import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.NameValuePair; import org.apache.log4j.Logger; 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.Map; /** * ClassName: HttpRequestSender * @version * @since JDK 1.7 */ public class HttpRequestSender { private static Logger logger = Logger.getLogger(HttpRequestSender.class); public static HttpResponse sendGet(String url, String queryString){ if(url == null || url.equals("")){ return null; } HttpRequest request = new HttpRequest(HttpResultType.STRING); request.setUrl(url); request.setMethod(HttpRequest.METHOD_GET); if(queryString != null && !queryString.equals("")){ request.setQueryString(queryString); } HttpProtocolHandler httpProtocolHandler = HttpProtocolHandler.getInstance(); try { HttpResponse httpResponse = httpProtocolHandler.execute(request, "", ""); return httpResponse; } catch (HttpException e) { logger.error("Fail with send GET request: ", e); } catch (IOException e) { logger.error("Fail with send GET request: ", e); } catch (Exception e){ logger.error("Fail with send GET request: ", e); } return null; } public static HttpResponse sendPost(String url, NameValuePair[] nvp){ if(url == null || url.equals("")){ return null; } HttpRequest request = new HttpRequest(HttpResultType.STRING); request.setUrl(url); request.setMethod(HttpRequest.METHOD_POST); if(nvp != null){ request.setParameters(nvp); } HttpProtocolHandler httpProtocolHandler = HttpProtocolHandler.getInstance(); try { HttpResponse httpResponse = httpProtocolHandler.execute(request, "", ""); return httpResponse; } catch (HttpException e) { logger.error("Fail with send POST request: ", e); } catch (IOException e) { logger.error("Fail with send POST request: ", e); } catch (Exception e){ logger.error("Fail with send POST request: ", e); } return null; } public static HttpResponse sendPost(String url, NameValuePair[] nvp, String fileNameParam, String fileNamePath){ if(url == null || url.equals("")) return null; HttpRequest request = new HttpRequest(HttpResultType.STRING); request.setUrl(url); request.setMethod(HttpRequest.METHOD_POST); if(nvp != null) request.setParameters(nvp); HttpProtocolHandler httpProtocolHandler = HttpProtocolHandler.getInstance(); try { HttpResponse httpResponse = httpProtocolHandler.execute(request, fileNameParam, fileNamePath); return httpResponse; } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (Exception e){ e.printStackTrace(); } return null; } public static HttpResponse sendPost(String url, Map<String, String> map){ NameValuePair[] nvpArray = null; if(map != null && map.size() > 0){ nvpArray = new NameValuePair[map.size()]; int i = 0; for(String key : map.keySet()){ NameValuePair nvp = new NameValuePair(key, map.get(key)); nvpArray[i++] = nvp; } } return sendPost(url, nvpArray); } public static String sendPost(String url, String param) throws Exception{ PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); // 開啟和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)"); // 傳送POST請求必須設定如下兩行 conn.setDoOutput(true); conn.setDoInput(true); // 獲取URLConnection物件對應的輸出流 out = new PrintWriter(conn.getOutputStream()); // 傳送請求引數 out.print(param); // flush輸出流的緩衝 out.flush(); // 定義BufferedReader輸入流來讀取URL的響應 in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8")); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { logger.error(e.getMessage(), e); throw e; } // 使用finally塊來關閉輸出流、輸入流 finally { try { if (out != null) { out.close(); } if (in != null) { in.close(); } } catch (IOException ex) { logger.error(ex.getMessage(), ex); throw ex; } } return result; } /** * 向指定URL傳送GET方法的請求 * * @param url * 傳送請求的URL * @param param * 請求引數,請求引數應該是 name1=value1&name2=value2 的形式。 * @return URL 所代表遠端資源的響應結果 */ public static String sendGetReuqest(String url, String param) throws Exception{ String result = ""; BufferedReader in = null; try { String urlNameString = url + "?" + param; URL realUrl = new URL(urlNameString); // 開啟和URL之間的連線 URLConnection connection = realUrl.openConnection(); // 設定通用的請求屬性 connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); // 建立實際的連線 connection.connect(); // 定義 BufferedReader輸入流來讀取URL的響應 in = new BufferedReader(new InputStreamReader( connection.getInputStream(),"UTF-8")); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { logger.error(e.getMessage(), e); throw e; } // 使用finally塊來關閉輸入流 finally { try { if (in != null) { in.close(); } } catch (Exception e2) { logger.error(e2.getMessage(), e2); throw e2; } } return result; } }
相關推薦
java傳送http請求獲取響應結果【工具包系列】
import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.NameValuePair; import org.apache.log4j.Logger;
java伺服器端解決跨域問題【工具包系列】
現在很多開發的API都支援ajax直接請求,這樣就會導致跨域的問題,解決跨域的問題一方面可以從前端,另一方面就是伺服器端。 既然是搞伺服器端,做對外的API服務,當然是做到越簡單越好,前端只需要傻傻的使用就好。 目前我接觸來的情況是有2種實現方
java傳送http請求獲取手機驗證碼
Maven <!--http --> <dependency> <groupId>org.apache.httpcomponents</groupId>
tomcat宕機自動重啟和每日定時啟動tomcat【工具包系列】
在專案後期維護中會遇到這樣的情況,tomcat在記憶體溢位的時候就出現宕機的情況和遇到長時間不響應,需要人工手動關閉和重啟服務,針對這樣的突發情況,希望程式能自動處理問題而不需要人工關於,所以才有了目前的需求。 一、設定tomcat定時啟動 1,首先將tomcat註
CSV操作(匯出和匯入)【工具包系列】
CSV的匯入匯出經常用在資料庫方面,比如在專案運作中,第三方的提供部分資料但是又不肯開放介面給呼叫者,他們只提供數 據庫片段資料然後以CSV的格式提供給使用者,所以這個時候就是用到CSV匯入匯出的功能了,再提一下CSV的匯入和匯出功能 和TXT的匯入匯出功能非常相似,下一
JAVA傳送HTTP請求(post、get),讀取HTTP響應內容,例項及應用
JDK中提供了一些對無狀態協議請求(HTTP)的支援,下面我就將我所寫的一個小例子(元件)進行描述: 首先讓我們先構建一個請求類(HttpRequester)。 該類封裝了JAVA實現簡單請求的程式碼,如下: import java.io.BufferedReader;
java 使用 okhttp傳送http請求獲取介面資料
為什麼需要使用okhttp: 目前我們學習的所有中只有html中的超連結和form表單才可以傳送http請求,另外一個就是ajx非同步傳送http請求獲取資料。 但是在實際開發需求中
Java傳送Http請求並獲取狀態碼
通過Java傳送url請求,檢視該url是否有效,這時我們可以通過獲取狀態碼來判斷。 try { URL u = new URL("http://10.1.2.8:8080/fqz/page/qizha/pros_add.jsp"); tr
Java 傳送http請求
傳送GET方法的請求 /** * 向指定URL傳送GET方法的請求 * @param url 傳送請求的URL * @param param 請求引數,格式:name1=value1&name2=value2
Java傳送http請求(HttpClient)
public class HttpClientUtil { public static String doGet(String url, Map<String, String> param, String token) { // 建立Httpclient物件 Closeabl
Java 傳送http請求demo
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.U
java 傳送http請求獲得json 以及解析json
博主在做一款圖書app的後臺,最近遇到的一個需求: 前端向後端返回圖書的isbn碼,後端向前端返回該isbn對應圖書的資訊,例如書名、作者、出版社、簡介等。 後端實現的邏輯: 讀取isbn碼,判斷是否為空,為空則報錯 檢視資料庫是否有與該isbn匹配的圖
Java傳送Http請求,解析html返回
宣告:本文系JavaEye網站釋出的原創部落格文章,未經作者書面許可,嚴禁任何網站轉載本文,否則必將追究法律責任! 今天是2008年7月7日星期一,下午一直在學校做個人開始頁面。因為離不開google的翻譯,所以想把google的翻譯整合到我的開始頁面中來,於是乎就遇到了一個
java 傳送http請求 返回字串 再進行解析(略)
package taobao.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.InputStreamR
幾種方式的java傳送http請求的程式碼彙總
<span style="font-family: Arial, Helvetica, sans-serif;">import java.io.BufferedReader;</span> import j
Java傳送Http請求工具類
package com.core.utils; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.Print
java傳送http請求的四種方式
自己對知識的總結 4種分別可傳送get和post請求的方法, 第1種:HttpURLConnection、 第2種:URLConnection、 第3種:HttpClient,,HttpClient常
JAVA傳送http請求,呼叫http介面與方法
1.傳送POST請求,無引數名呼叫。 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import
Java 傳送http請求,上傳檔案
package wxapi.WxHelper; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.F
java 傳送http請求以及請求引數值出現亂碼
一、傳送Http POST請求 public static String sendPost(String apiurl){ String inputline = ""; // 建立url物件