JAVA模擬post方式提交URL引數和body內json引數
阿新 • • 發佈:2018-12-29
package test.itsm;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import cn.com.tron.omms.util.JsonUtil;
public class HttpRequest {
public static void main(String[] args) throws Exception {
String strURL = "http://localhost:8080/console/useradd.sess?a=appid&t=1&s=signature&d=digest";
Map<String, String> paramMap = new HashMap<String, String>();
paramMap.put("loginname", "zhangsan");
paramMap.put("username" , "張三");
paramMap.put("passwd", "passcode01");
paramMap.put("status", "0");
OutputStreamWriter out = null;
InputStream is = null;
try {
URL url = new URL(strURL);// 建立連線
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true );
connection.setDoInput(true);
connection.setUseCaches(false);
connection.setInstanceFollowRedirects(true);
connection.setRequestMethod("POST"); // 設定請求方式
connection.setRequestProperty("Accept", "application/json"); // 設定接收資料的格式
connection.setRequestProperty("Content-Type", "application/json"); // 設定傳送資料的格式
connection.connect();
out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); // utf-8編碼
out.append(JsonUtil.object2json(paramMap));
out.flush();
out.close();
// 讀取響應
is = connection.getInputStream();
int length = (int) connection.getContentLength();// 獲取長度
if (length != -1) {
byte[] data = new byte[length];
byte[] temp = new byte[512];
int readLen = 0;
int destPos = 0;
while ((readLen = is.read(temp)) > 0) {
System.arraycopy(temp, 0, data, destPos, readLen);
destPos += readLen;
}
String result = new String(data, "UTF-8"); // utf-8編碼
System.out.println("主機返回:" + result);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}