zoukankan      html  css  js  c++  java
  • using HttpClient and sending json data to RESTful server in adroind

    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.

  • 相关阅读:
    vscode安装设置go
    Go开发环境搭建
    使用Docker镜像
    Docker for mac安装
    封装request.get_params批量取值
    Python之日志处理(logging模块)
    Python3 urllib.parse 常用函数示例
    前端之CSS属性相关
    前端之CSS选择器
    前端之CSS介绍
  • 原文地址:https://www.cnblogs.com/tuolin/p/2174654.html
Copyright © 2011-2022 走看看