从 Android 客户端调用 Web 服务

Posted

技术标签:

【中文标题】从 Android 客户端调用 Web 服务【英文标题】:Calling a web service from an Android client 【发布时间】:2011-12-06 00:46:55 【问题描述】:

我正在同时开发我的第一个 android 应用和第一个 WCF 服务。

我有以下服务合同:

[ServiceContract]
    public interface ILoginService
    

        [OperationContract]
        string Login(string username, string password);

        // TODO: Add your service operations here
    

我想从我的 Android 应用程序中调用它并传入用户名和密码参数。 1、这份运营合同适合这份工作吗? 2. 谁能指点我如何通过Android调用这个WCF服务的教程/代码示例?

谢谢!

编辑:我可能更接近一点,但我还是迷路了。 这是我到目前为止所拥有的: 合同:

[OperationContract]
        [WebGet(ResponseFormat= WebMessageFormat.Json,
            UriTemplate="/LoginService/?username=username&password=password")]
        Response Login(string username, string password);

然后我从 Android 调用该服务:

public LoginResponse RemoteLogin(String username, String password)
    
        loginParameters = "/LoginService/username=" + username + "&password=" + password;


        HttpClient httpclient = new DefaultHttpClient();
        HttpGet httpget = new HttpGet(serviceAddress + loginParameters);

        HttpResponse response;

        LoginResponse loginResponse = null;

        try
        
            response = httpclient.execute(httpget);

            HttpEntity entity = response.getEntity();

            if(entity != null)
            
                InputStream instream = entity.getContent();
                String result = convertStreamToString(instream);
                JSONObject json = new JSONObject(result);

                // Parsing
                JSONArray nameArray = json.names();
                JSONArray valArray = json.toJSONArray(nameArray);

                loginResponse = new LoginResponse(valArray.getBoolean(1), valArray.getString(0), valArray.getString(2));


                instream.close();
            

        
        catch(Exception e)
        
            loginResponse = new LoginResponse();
            String sDummy = e.toString();
        
        return loginResponse;
    

我现在不知道出了什么问题。

【问题讨论】:

【参考方案1】:

并没有真正解决问题,只是绕开了它。 我从 web.config 中删除了与 ServiceModel 相关的任何内容,并向 SVC 文件添加了一个 ServiceHostFactory 指令。那成功了。现在一切正常。一定是某种配置问题。

【讨论】:

你能解释一下如何在android中使用wcf服务启动吗?请给出一些启动步骤。我对此一无所知,所以

以上是关于从 Android 客户端调用 Web 服务的主要内容,如果未能解决你的问题,请参考以下文章

从后面的代码与客户端调用外部Web服务[关闭]

如何从 android 客户端调用 REST WCF 服务

从 .NET 2.0 客户端调用 Web Api 服务

为啥当android在java中调用第二次Web服务时会创建新的会话

SignalR IOS 客户端,Web 套接字传输无法从服务器调用方法

如何保护 Web 服务调用