`

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.

 

分享到:
评论

相关推荐

    httpclient和RestfuL风格上传下载文件

    在Java开发中,HTTPClient和RESTful风格的接口被广泛用于实现文件的上传与下载功能。HTTPClient是一个强大的HTTP客户端库,而RESTful是一种轻量级的、基于HTTP协议的软件架构风格,常用于构建Web服务。在分布式系统...

    httpclient post json 数据

    "httpclient post json数据"这个主题就是关于如何使用C#的HttpClient类来向Web API发送POST请求,并且以JSON格式传输数据。下面将详细解释这一过程。 首先,理解JSON(JavaScript Object Notation)是一种轻量级的...

    Android客户端向服务器端请求数据的两种方式:HTTPURLConnection、HTTPClient,以json数据的解析

    Android客户端向服务器端请求数据的两种主要方式:HTTPURLConnection、HTTPClient;内含客户端与服务器端Demo(带有详细注释),原生方式解析json数据,希望大家多多批评指教!!

    Android HttpClient与Json解析

    在本示例中,HttpClient被用来从服务器获取数据,这些数据通常是JSON格式,这是一种轻量级的数据交换格式,易于人阅读和编写,同时也方便机器解析和生成。 首先,我们需要了解如何使用Android的HttpClient。在...

    使用HttpURLConnection或HttpClient方式传json值到spring中

    以下是如何使用`HttpClient`发送JSON的示例: ```java import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; ...

    通过httpclient获取到JSON数据,展示到ListView

    在Android开发中,将通过HTTPClient获取到的JSON数据展示到ListView是一种常见的需求。这个过程涉及到网络请求、JSON解析以及UI绑定等多个环节。下面将详细解释这些知识点。 首先,`HTTPClient`是Apache HttpClient...

    HttpClient访问后台服务的Restful(各种方式访问)

    使用HttpClient4.3版本,使用Springmvc的restful方式访问后台的服务

    HttpClient发送post请求传输json数据

    在这个场景中,我们关注的是如何使用HttpClient来发送POST请求并传输JSON数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于API接口的数据传递。 首先,我们需要引入Apache HttpClient...

    WIFI_HTTPClient_ArduinoJson擷取_esp32_源码

    标题 "WIFI_HTTPClient_ArduinoJson擷取_esp32_源码" 描述了一个基于Arduino的项目,该项目涉及使用ESP32微控制器通过HTTP客户端库获取JSON数据,并利用ArduinoJson库解析这些数据。这个过程对于物联网(IoT)开发至关...

    Android例子源码httpclient获取到JSON数据并展示到ListView

    本示例源码展示了如何利用Apache HttpClient库获取JSON数据,并将其解析后填充到ListView中。以下将详细介绍这一过程的关键步骤。 1. **HTTP请求**: - Apache HttpClient:在Android API 23之前,HttpClient是...

    HttpClient发送json、普通参数类型的Post请求(csdn)————程序.pdf

    本文主要讨论如何使用HttpClient发送JSON格式和普通参数类型的POST请求。首先,我们来看一下所需的Maven依赖。 ```xml <groupId>commons-httpclient <artifactId>commons-httpclient <version>3.1 <groupId>...

    HttpClient问题:The server failed to respond with a valid HTTP resp

    在使用Apache HttpClient进行HTTP通信时,可能会遇到"HttpClient问题:The server failed to respond with a valid HTTP resp"这样的异常。这个错误通常表示服务器未能返回一个有效的HTTP响应,这可能是由多种原因...

    Android高级应用源码-通过httpclient获取到JSON数据,展示到ListView.zip

    这个源码示例"Android高级应用源码-通过httpclient获取到JSON数据,展示到ListView.zip"正是关于这个主题的,它演示了如何使用Apache的HttpClient库从服务器获取JSON数据,并解析这些数据以填充一个ListView。...

    c#下post multipart/form-data和JSON

    当我们需要上传文件或同时发送键值对(包括复杂的数据结构如JSON)时,通常会使用`multipart/form-data`和JSON这两种数据格式。下面我们将深入探讨如何在C#中实现这两种数据格式的POST请求。 一、`multipart/form-...

    HttpClient模拟get,post请求并发送请求参数(json等)

    首先,我们需要引入HttpClient的相关依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache.httpcomponents <artifactId>httpclient <version>4.5.13 ``` 接下来,我们...

    HttpClient使用HttpGet进行json数据传输(所使用的jar.zip)

    在实际应用中,使用HttpClient进行JSON数据传输可能会涉及更多细节,如连接池管理、重试策略、超时设置等。要深入理解HttpClient的用法,可以参考官方文档或博客(如给出的链接),学习更多高级特性和最佳实践。

    实现http协议两端httpserver和httpclient

    在这个项目中,文件"HTTPClient"和"HttpServer"可能是分别实现了客户端和服务器端的源代码文件。通过阅读和理解这些代码,你可以深入学习到如何在VC++中实现HTTP通信,以及如何处理网络数据的发送和接收。 总之,...

    Android代码-通过httpclient获取到JSON数据展示到ListView.zip

    在展示JSON数据时,我们首先需要将JSON数据转换成可适配的数据模型,然后用`ArrayAdapter`或自定义的`BaseAdapter`绑定到ListView上。 4. **Asynchronous HTTP Client**:考虑到异步处理的重要性,通常会在后台线程...

Global site tag (gtag.js) - Google Analytics