我正在使用WCF Restful网络服务,这是我的网络服务代码,

 [OperationContract]
    [WebInvoke(Method = "POST",
      ResponseFormat = WebMessageFormat.Json,
      BodyStyle = WebMessageBodyStyle.Wrapped,
      UriTemplate = "Login?parameter={parameter}")]
      string Login(string parameter);


 public string Login(string parameter)
    {



        /*
         * input :=  {"username":"kevin","password":"123demo"}
         * output:=  1=sucess,0=fail
         *
        */

        //Getting Parameters from Json  
        JObject jo = JObject.Parse(parameter);
        string username = (string)jo["username"];
        string password = (string)jo["password"];
        return ""+username;
}

我的客户端(Android)代码如下

 JSONObject json = new JSONObject();
          try {
            json.put("username","demo");
            json.put("password","password123");

        HttpPost postMethod = new HttpPost(SERVICE_URI);
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
        postMethod.setHeader("Accept", "application/json");
        postMethod.setHeader("Content-type", "application/json");

        nameValuePairs.add(new BasicNameValuePair("parameter",""+json.toString()));
        HttpClient hc = new DefaultHttpClient();
        postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        HttpResponse response = hc.execute(postMethod);
        Log.i("response", ""+response.toString());
        HttpEntity entity = response.getEntity();
        final String responseText = EntityUtils.toString(entity);

        string=responseText;
        Log.i("Output", ""+responseText);
        } 

        catch (Exception e) {
            // TODO Auto-generated catch block
        Log.i("Exception", ""+e);
        }

调用Web服务后,我得到以下输出:

服务器在处理请求时遇到错误。 有关更多详细信息,请参见服务器日志。

基本上我的问题是我无法使用NameValuePair传递值。

===============>>#1 票数:0 已采纳

以下代码为我工作:

 public static String getJsonData(String webServiceName,String parameter)
{  
    try  
    {
    String urlFinal=SERVICE_URI+"/"+webServiceName+"?parameter=";
    HttpPost postMethod = new HttpPost(urlFinal.trim()+""+URLEncoder.encode(parameter,"UTF-8"));
    postMethod.setHeader("Accept", "application/json");
    postMethod.setHeader("Content-type", "application/json");

    HttpClient hc = new DefaultHttpClient();

    HttpResponse response = hc.execute(postMethod);
    Log.i("response", ""+response.toString());
    HttpEntity entity = response.getEntity();
    final String responseText = EntityUtils.toString(entity);

    string=responseText;
    Log.i("Output", ""+responseText);
      }
      catch (Exception e) {
    }

return string;
}

  ask by sachin10 translate from so

未解决问题?本站智能推荐:

1回复

将json值发布到服务器的不同方法

我创建了一个登录WCF服务,该服务已使用Fiddler和Postman工具成功进行了测试..! 如果登录过程成功,则WCF将给出上述屏幕快照的json消息。 但是,当我从android发布用户名和密码时,结果为[{“ message”:“ not created”,“ suc
2回复

带有JSON解析错误的Android AsyncTask

本节中出现错误: ------- Web服务结果--- { “GetDataResult”:{ “ID”:8, “名”: “富酒吧”}}工作链接- http://127.0.0.1/WcfService4/Service1.svc/getData/?key=8 提供更好
1回复

使用Android的Post Params消费WCF Web服务

我使用使用WCF网络服务的Android设备。 我设法从WCF获取JSON消息,发送文件,但没有设法将POST参数发送到WCF服务。 我的目标是进行这样的思考(或获取一个对象,然后反序列化JSON)。 (用户是一个复杂的对象,基本上由String和Integer组成) 如htt
1回复

在Android中,如何将数据发布到WCF中创建的Web服务?

我是使用WCF框架开发的C#Web服务的新手。 而且我必须在URL中发布数据。 我的URL类似于http://www.example.com/abc/DGLC.svc/login ,我必须使用post方法传递数据。 并且参数如下所示。 { “ UserName”:“ Admin
1回复

从Android 2.2手机请求WCF RESTful服务时出现请求错误

我想在Android中创建一个方法,通过为它提供一个字符串参数,可以与WCF RESTful服务进行通信。 但是,每当我发出请求时,我得到的都是“请求错误”错误。 我尝试过通过Fiddler调用服务,但没有提供任何参数,而且效果很好。 我在这里做什么,该如何解决? 谢谢你的时
1回复

难以将复杂的JSON对象从Android应用程序传递到RESTful服务

我对android-> JSON-> RESTful WCF webserive体系结构的实现有疑问。 我主要来自基于C#模式的背景,因此很难找到Android架构。 我设计C#Web服务的方式是拥有一个完整的“模型”命名空间,该命名空间将我的所有业务对象(如User,UserP
1回复

无法将JSON参数从Android发布到WCF

是的,我已经阅读了所有与此相关的提交,以寻找代码中的缺陷。 我的Android应用程序发布到WCF Web服务(4.0)。 该服务在UriTemplate UriTemplate =“ PostUpdate / {userIMEI}”中接收传递的参数,但是[DataContract]中的JS
2回复

Android:如何通过服务发送图片

我想知道如何发送图片。 我正在使用json发送数据并将其存储到数据库。 但是我该如何处理图片? 如何使用json发送?
1回复

使用JavaScript代理在Android上使用WCF服务

我需要使用一些通常在Web应用程序中使用的第三方WCF Web服务,但这一次是从android。 我在生成的javascript代理中具有以下功能, 我无法更改服务中的任何内容。 在android中使用这种服务的最简单方法是什么? 我可以将此javascipt传递给webVie
1回复

如何将AsyncTask转换为Retrofit以从Android中的WCF Web服务获取数据

我有一个WCF Web服务,它以JSON格式返回SQL Server数据库数据,现在我正在使用AsyncTask通过以下代码在Android中获取此数据: 这样,当请求大于例如10个请求时,响应时间就很长。 从本主题开始, 如何加快使用JSON从服务器获取数据的速度? 我意识到我应该