วิธี Call REST full ด้วย Java Client
วิธี Call REST full ด้วย Java Client
พร้อมด้วยการแปลง Object ด้วย JSONParser
ก่อนอื่น โหลด lib ตัวนี้มาก่อนนะครับ json-simple-1.1.1.jar
เป็นตัว JSONParser โหลดได้ที่ http://code.google.com/p/json-simple
เริ่มจาก import ตามนี้ครับ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
//อันนี้ไว้ อ่าน JSON
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
ต่อมาขั้นตอนการ อ่าน RESTfull ตามนี้ อันนี้แบบ POST นะครับ
URL url = new URL("http://localhost/REST/service");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod(method);
conn.setRequestProperty("Content-Type", "application/json;charset=utf-8");
// ถ้ามีกำหนดให้ Add Header อะไรเพิ่มก็ ใส่ตรงนี้ได้เลยนะครับ เช่น
//conn.setRequestProperty("PARAM1", "VALUE1");
กรณีมี Input parameter ก็ใส่ตามนี้เลยครับ เช่น
String input = "{\"code_id\":1001,\"price\":\"5000\"}";
OutputStream os = conn.getOutputStream();
os.write(input.getBytes());
os.flush();
เริ่มยิง URL กันได้เลยพร้อมเก็บค่า JSON ไว้ใน String
BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
String output;
StringBuffer sb =new StringBuffer();
while ((output = br.readLine()) != null) {
sb.append(output);
}
conn.disconnect();
String json=sb.toString();
ถึงตรงนี้จะได้ JSON String มาแล้ว ต่อมาเราจะเริ่มแปลงเป็น JSON Object
JSONParser parser = new JSONParser();
Object obj = parser.parse(json);
JSONObject jsonObject = (JSONObject) obj;
String testData = (String) jsonObject.get("testData");
System.out.println(testData);