使用Objective C问题消耗WCF服务

时间:2014-06-06 06:51:02

标签: c# ios wcf

我正在尝试使用我在本地计算机上发布的wcf服务。 WCF服务在我的路由器内部,因此我只能访问路由器外部的服务。 (我通过在手机上关闭wifi来实现这一点,并且我能够接通该服务)。我试图执行GET方法。

服务器端WCF代码如下所示:

// Service1.svc.cs

public string GetUsers()
        {
            var userController = new UserController();

            string returnString = userController.GetAllUsers();

            return returnString;
        }

// IService.cs

 [OperationContract]
        [WebGet(UriTemplate = "/GetUsers")]
        string GetUsers();

// Iphone客户端

- (IBAction)btnSendRequest:(id)sender
{
    NSString *restCallString = [NSString stringWithFormat:@"publicIP/MyService/Service1.svc/GetUsers"];


    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:restCallString]];
    [request setHTTPMethod:@"GET"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];

    NSError *error = nil;
    NSURLResponse *response = nil;


    NSData *result = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

}

现在,如果我将restCallString更改为类似http://www.apple.com的内容,那么my * result变量将返回数据。我正在我的实际设备上的Xcode中调试这个,我的设备上关闭了wifi。从理论上讲,它应该像我在手机浏览器中查看服务方法时的行为一样,但它不起作用。尝试访问我的服务时,* result变量始终返回nil。如果有人有提示或建议,我会非常感激。

1 个答案:

答案 0 :(得分:1)

也许你想考虑使用它,我认为WCF服务可能配置不正确。

您需要在服务中标记响应格式以及配置Web绑定。

http://www.codeproject.com/Articles/105273/Create-RESTful-WCF-Service-API-Step-By-Step-Guide