Android 使用httppost向c# wcf发送数据总结

最近一直在搞android开发,开发中需要用到以http post方式访问wcf服务,此文用于总结安卓端如何发送,服务端wcf(webservice)代码如何接受,传输过程以json方式传输。

有问题请联系:QQ:404926765 文章作者:kwstu

一、先看android端发送代码:

String strResp = "";//接受返回结果
      HttpPost request = new HttpPost("http://*******/Service1.svc/Denglutmp");//wcf地址
      request.setHeader("Accept", "application/json");
      request.setHeader("Content-type", "application/json");
      // 构造json
      JSONStringer vehicle;
      try {
         vehicle = new JSONStringer()
            .object()
                .key("user")
                    .object()
                        .key("UserName").value("aa444大宝aadddd")
                        .key("PassWord").value("54fffff444")
                    .endObject()
                .endObject();
         StringEntity entity = new StringEntity(vehicle.toString(), "UTF-8");//需要设置成utf-8否则汉字乱码
         request.setEntity(entity);
         // 向WCF服务发送请求
         DefaultHttpClient httpClient = new DefaultHttpClient();
         HttpResponse response = httpClient.execute(request);
         // 判断是否成功
         if (response.getStatusLine().getStatusCode() == HttpURLConnection.HTTP_OK)
            strResp = EntityUtils.toString(response.getEntity(), "UTF-8");
         System.out.println("strResp="+strResp);
         Log.d("WebInvoke", "Saving : "
                + response.getStatusLine().getStatusCode());
      } catch (Exception e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
      // Reload plate numbers

二、以下是wcf服务端接收代码:

服务器端接收json数据必须创建对应的类(可能还有其他方式,本人刚接触不知道)

1、对应json类:

public class UserType
    {
        [DataMember]
        public string UserName { get; set; }
        [DataMember]
        public string PassWord { get; set; }
    }

2、定义wcf接口:

[OperationContract]
        [WebInvoke(Method = "POST", UriTemplate = "Denglutmp", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
        string Denglutmp(UserType user);

3、实现接口:

public string Denglutmp(UserType user)
{
//你的处理方法,本方法将客户端传过来的数据之间返回
   return user.UserName+ user.PassWord;
}