微信公眾號get與post請求實現模版
阿新 • • 發佈:2019-01-22
在做微信公眾平臺後臺開發的時候,常常需要用程式碼實現模擬瀏覽器的GET和POST請求,
下面是用Java語言實現的GET和POST請求的一般寫法:
1.GET請求模擬(不帶引數)
//由於這類方法經常被用到,因此建議寫在一個工具類裡面,設定為靜態方法,方便呼叫。
//requestUrl表示請求連結
public static String sendGet(String requestUrl) {
StringBuffer buffer = null;
try {
// 建立連線
URL url = new URL(requestUrl);
HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection();
httpUrlConn.setDoInput(true);
httpUrlConn.setRequestMethod("GET");
// 獲取輸入流
InputStream inputStream = httpUrlConn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
// 讀取返回結果
buffer = new StringBuffer();
String str = null;
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str );
}
// 釋放資源
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
httpUrlConn.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
return buffer.toString();
}
2.GET請求模擬(帶引數)
//由於這類方法經常被用到,因此建議寫在一個工具類裡面,設定為靜態方法,方便呼叫。
//url表示請求連結,param表示json格式的請求引數
public static String sendGet(String url, Object param) {
String result = "";
BufferedReader in = null;
PrintWriter out = null;
try {
URL realUrl = new URL(url);
// 開啟和URL之間的連線
URLConnection connection = realUrl.openConnection();
connection.setDoOutput(true);
// 建立實際的連線
connection.connect();
out = new PrintWriter(connection.getOutputStream());
// 傳送請求引數
out.print(param);
// 定義 BufferedReader輸入流來讀取URL的響應
in = new BufferedReader(new InputStreamReader(
connection.getInputStream(), "UTF-8"));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("傳送GET請求出現異常!" + e);
e.printStackTrace();
}
// 使用finally塊來關閉輸入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
System.out.println(result);
return result;
}
3.POST請求模擬
//由於這類方法經常被用到,因此建議寫在一個工具類裡面,設定為靜態方法,方便呼叫。
//url表示請求連結,param表示json格式的請求引數
public static String sendPost(String url, Object param) {
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
URL realUrl = new URL(url);
// 開啟和URL之間的連線
URLConnection conn = realUrl.openConnection();
// 設定通用的請求屬性 注意Authorization生成
// conn.setRequestProperty("Content-Type",
// "application/x-www-form-urlencoded");
// 傳送POST請求必須設定如下兩行
conn.setDoOutput(true);
conn.setDoInput(true);
// 獲取URLConnection物件對應的輸出流
out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(),"utf-8"));
// 傳送請求引數
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;
}
System.out.println(result);
} catch (Exception e) {
System.out.println("傳送 POST 請求出現異常!" + e);
e.printStackTrace();
}
// 使用finally塊來關閉輸出流、輸入流
finally {
try {
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return result;
}
- 以上方法裡面所用到的包,這裡沒有引入,只是作為一個例項程式,說明一下模擬瀏覽器的GET和POST請求的常見寫法。 希望對朋友們有用!