java傳送JSON格式的http通訊的post請求
阿新 • • 發佈:2019-01-23
一、下面是java程式碼經過測試後成功了。
package com.test; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.text.SimpleDateFormat; import java.util.Date; import net.sf.json.JSONObject; public class AppHttp { public static final String ADD_URL = "http://10.20.121.233:8928/ccs/openInterface/compSystemRece.do"; public static void appadd() { try{ //建立連線 URL url = new URL(ADD_URL); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setDoInput(true); connection.setRequestMethod("POST"); connection.setUseCaches(false); connection.setInstanceFollowRedirects(true); //connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); connection.setRequestProperty("Content-Type","application/json; charset=UTF-8"); connection.connect(); //POST請求 DataOutputStream out = new DataOutputStream(connection.getOutputStream()); JSONObject obj = new JSONObject(); obj.put("orderId", "4444444444444"); // 訂單號 SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(sf.format(new Date())); obj.put("compTime",sf.format(new Date())); // 投訴時間 obj.put("comperAddress", "我是一個兵"); // 投訴人地址 //System.out.println(obj.toString()); //out.writeBytes(obj.toString());//這個中文會亂碼 out.write(obj.toString().getBytes("UTF-8"));//這樣可以處理中文亂碼問題 out.flush(); out.close(); //讀取響應 BufferedReader reader = new BufferedReader(new InputStreamReader( connection.getInputStream())); String lines; StringBuffer sb = new StringBuffer(""); while ((lines = reader.readLine()) != null) { lines = new String(lines.getBytes(), "utf-8"); sb.append(lines); } System.out.println(sb); reader.close(); // 斷開連線 connection.disconnect(); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { appadd(); } }
二、所需要的jar包
commons-lang-2.4.jar commons-logging-1.1.1.jar ezmorph-1.0.6.jar json-lib-0.9.jar 四個jar包。
三、HTTP協議狀態碼的含義
"100 " : Continue "101 " : witching Protocols "200 " : OK "201 " : Created "202 " : Accepted "203 " : Non-Authoritative Information "204 " : No Content "205 " : Reset Content "206 " : Partial Content "300 " : Multiple Choices "301 " : Moved Permanently "302 " : Found "303 " : See Other "304 " : Not Modified "305 " : Use Proxy "307 " : Temporary Redirect "400 " : Bad Request "401 " : Unauthorized "402 " : Payment Required "403 " : Forbidden "404 " : Not Found "405 " : Method Not Allowed "406 " : Not Acceptable "407 " : Proxy Authentication Required "408 " : Request Time-out "409 " : Conflict "410 " : Gone "411 " : Length Required "412 " : Precondition Failed "413 " : Request Entity Too Large "414 " : Request-URI Too Large "415 " : Unsupported Media Type "416 " : Requested range not satisfiable "417 " : Expectation Failed "500 " : Internal Server Error "501 " : Not Implemented "502 " : Bad Gateway "503 " : Service Unavailable "504 " : Gateway Time-out "505 " : HTTP Version not supported