1. 程式人生 > >JAVA模擬post方式提交URL引數和body內json引數

JAVA模擬post方式提交URL引數和body內json引數

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(); } } } }