我正在尝试使用我在本地计算机上发布的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。如果有人有提示或建议,我会非常感激。
答案 0 :(得分:1)
也许你想考虑使用它,我认为WCF服务可能配置不正确。
您需要在服务中标记响应格式以及配置Web绑定。
http://www.codeproject.com/Articles/105273/Create-RESTful-WCF-Service-API-Step-By-Step-Guide