1. 程式人生 > >java傳送JSON格式的http通訊的post請求

java傳送JSON格式的http通訊的post請求

一、下面是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