0

我是新手,需要一些帮助。我在 Visual Studio 中创建了一个 wcf 服务应用程序并编写了一个简单的登录方法,该方法接收参数用户 ID 和密码,然后返回一个已登录用户对象的对象,该对象具有两个字段名称和组织。

登录用户类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Runtime.Serialization;

namespace crmpp_android_service
{
    public class LoggedUser
    {
        public string name;
        public string organization;
        [DataMember]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        [DataMember]
        public string Organization
        {
            get { return organization; }
            set { organization = value; }
        }
    }
}

运营合同:

[OperationContract]
        [WebInvoke(Method = "GET",
           ResponseFormat = WebMessageFormat.Json,
             RequestFormat = WebMessageFormat.Json,
            UriTemplate = "login/?userid={userid} & pass={pass}"
        )]
        [Description("User Login return username & Organization currently affiliated")]
        LoggedUser login(string userid, string pass);

Service1.svc中的方法实现:

  public LoggedUser login(string userid , string pass)
        {
            LoggedUser log_usr = new LoggedUser();
            log_usr.name = "Ahsan Mehdi";
            log_usr.organization = "JDC";
            return log_usr;
        }

但是当我通过按 ctrl+F5 运行应用程序时,它会像这样打开一个 wcf 测试客户端并返回数据。 在此处输入图像描述

当我为服务编写 URL 时,我无法从 android 应用程序或仅从浏览器获得响应,它向我显示了这样的页面。

http://localhost:57127/Service1.svc

在此处输入图像描述

当像这样完成网址时

http://localhost:57127/Service1.svc/login/?userid=abc123&pass123

它不会尽快返回任何指南或帮助。

4

2 回答 2

1

据我了解,您希望访问托管在您的 localhost 机器上而不是 IIS 上的这个 WCF url。要访问您的 localhost 网络服务,请使用它而不是 localhost

http://10.0.2.2:Port/Service1.svc/login/?userid=abc123&pass123

在 IIS 上使用分配给您的系统 IP。

http://192.168.0.123:Port/Service1.svc/login/?userid=abc123&pass123

我希望这能解决您关于连接到 android 项目的问题。

于 2013-10-19T17:03:45.393 回答
0

获取 WCFstorm。当你运行它时,添加一个新服务,并复制服务的 url(在你的截图中,它显示为:

localhost:57127/Service.svc

这将允许您测试服务。

这就是我在工作中用于测试 WCF 服务的方法。

我使用的另一个工具是 Fiddler。

于 2013-10-17T03:13:13.567 回答