1. 程式人生 > >Java 通過HttpURLConnection Post方式提交json,並從服務端返回json資料

Java 通過HttpURLConnection Post方式提交json,並從服務端返回json資料

這個技術和xml差不過,主要是服務端程式碼稍微修改,客戶端程式碼修改部分傳遞引數就可以完成,但在之前需要匯入json所需要的jar包。
PostJson.java程式碼

package PostPager;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject
; public class PostJson { public static void main(String args[]) { try { JSONObject obj = new JSONObject(); obj.append("app_name", "全民大討論"); obj.append("app_ip", "10.21.243.234"); obj.append("app_port", 8080); obj.append
("app_type", "001"); obj.append("app_area", "asd"); System.out.println(obj); // 建立url資源 URL url = new URL("http://119.29.85.118//test.php"); // 建立http連線 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // 設定允許輸出 conn.setDoOutput
(true); conn.setDoInput(true); // 設定不用快取 conn.setUseCaches(false); // 設定傳遞方式 conn.setRequestMethod("POST"); // 設定維持長連線 conn.setRequestProperty("Connection", "Keep-Alive"); // 設定檔案字符集: conn.setRequestProperty("Charset", "UTF-8"); //轉換為位元組陣列 byte[] data = (obj.toString()).getBytes(); // 設定檔案長度 conn.setRequestProperty("Content-Length", String.valueOf(data.length)); // 設定檔案型別: conn.setRequestProperty("contentType", "application/json"); // 開始連線請求 conn.connect(); OutputStream out = conn.getOutputStream(); // 寫入請求的字串 out.write((obj.toString()).getBytes()); out.flush(); out.close(); System.out.println(conn.getResponseCode()); // 請求返回的狀態 if (conn.getResponseCode() == 200) { System.out.println("連線成功"); // 請求返回的資料 InputStream in = conn.getInputStream(); String a = null; try { byte[] data1 = new byte[in.available()]; in.read(data1); // 轉成字串 a = new String(data1); System.out.println(a); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else { System.out.println("no++"); } } catch (Exception e) { } } }

服務端程式碼test.php

<?php
        $result = file_get_contents('php://input');
        echo $result;
        echo json_decode(json_encode($result));

?>

這裡面的json_encode是對字串進行json編碼,json_decode是對字串進行json解碼

返回結果:
{“app_name”:[“全民大討論”],”app_ip”:[“10.21.243.234”],”app_type”:[“001”],”app_port”:[8080],”app_area”:[“asd”]}
200
連線成功
{“app_name”:[“全民大討論”],”app_ip”:[“10.21.243.234”],”app_type”:[“001”],”app_port”:[8080],”app_area”:[“asd”]}{“app_name”:[“全民大討論”],”app_ip”:[“10.21.243.234”],”app_type”:[“001”],”app_port”:[8080],”app_area”:[“asd”]}