1.send a json object by parameter to request the RESTful server,as flowing code:
package tuo.json; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URI; import java.net.URISyntaxException; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicHeader; import org.apache.http.protocol.HTTP; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.guc.android.nurse.activity.R.string; /* * this class call RESTful WCF,and return json data */ public class JsonTruck { public String getJsonString(String wcfUrl) throws Exception { HttpClient httpClient = new DefaultHttpClient(); HttpGet request = new HttpGet(); request.setURI(new URI(wcfUrl)); HttpResponse response = httpClient.execute(request); return parseHttpResponse(response); } public String parseHttpResponse(HttpResponse response) throws Exception { String jsonString=""; int status = response.getStatusLine().getStatusCode(); if (status == 200) { BufferedReader bReader = new BufferedReader(new InputStreamReader( response.getEntity().getContent())); StringBuffer sb = new StringBuffer(""); String line = ""; String NL = System.getProperty("line.separator"); while ((line = bReader.readLine()) != null) { sb.append(line + NL); } jsonString = sb.toString(); bReader.close(); } return jsonString; } public JSONObject getJson(String wcfUrl,String jsonObjName) throws Exception { String jsonString=getJsonString(wcfUrl); JSONObject jsonObject = new JSONObject(jsonString); return jsonObject.getJSONObject(jsonObjName); } public JSONArray getJsons(String wcfUrl,String jsonObjName) throws Exception{ JSONObject jsonObject=new JSONObject(getJsonString(wcfUrl)); return jsonObject.getJSONArray(jsonObjName); } public String doPost(String wcfUrl,JSONObject jsonObject) throws Exception { HttpClient httpClient = new DefaultHttpClient(); HttpResponse response; HttpPost post=new HttpPost(); HttpEntity httpEntity; StringEntity stringEntity=new StringEntity(jsonObject.toString()); stringEntity.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json")); httpEntity=stringEntity; post.setEntity(httpEntity); post.setURI(new URI(wcfUrl)); post.setHeader("Content-type", "application/json"); response=httpClient.execute(post); return parseHttpResponse(response); } }
2.Test in Activity and fill a json object
package com.guc.android.nurse.activity; import org.json.JSONObject; import com.guc.android.nurse.comm.JsonTruck; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class Test extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.test); setListener(); } void setListener(){ Button updateBtn=(Button)findViewById(R.id.post_update); Button createButton=(Button)findViewById(R.id.post_create); updateBtn.setOnClickListener(new UpdateListener()); createButton.setOnClickListener(new CreateListener()); } class UpdateListener implements OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub String wcfUrl="http://192.168.0.110:8082/Nurse/SubmitRecord"; String message=""; JSONObject jsonObject=new JSONObject(); JSONObject obj=new JSONObject(); try { obj.put("his_account","00000"); obj.put("timebh","1"); obj.put("patientNo","*001201"); obj.put("admissTimes","1"); obj.put("position","1"); obj.put("piesis_x","120"); obj.put("piesis_y","80"); obj.put("respiration","1"); obj.put("temperature","1"); obj.put("pulse","1"); obj.put("liquidinput","1"); obj.put("urea","1"); obj.put("bowels","1"); obj.put("otheroutput","1"); jsonObject.put("record", obj); message=new JsonTruck().doPost(wcfUrl, jsonObject); } catch (Exception e) { // TODO Auto-generated catch block Toast.makeText(Test.this, e.getMessage(), 5000).show(); } Toast.makeText(Test.this, message, 5000).show(); } } class CreateListener implements OnClickListener{ @Override public void onClick(View v) { Toast.makeText(Test.this, "you click create nutton", 5000).show(); } } }
the RESRful server client(WCF),you can reference previous article.