0

在 Web 服务器上是以下方法:

[WebMethod()]
public static string login(string userName, string password)
{
    if (usernName == "test" && password == "test")
    {
         return "validated";
    }
    return "error";
}

我正在尝试使用以下目标 C 代码连接到它:

NSString *post = [NSString stringWithFormat:@"userName="test"&password="test"];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

NSString *serverURLString = @"http://myURL.aspx/login";
NSURL *serverURL = [NSURL URLWithString:serverURLString];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:serverURL];
[request setHTTPMethod:@"POST"];

[request addValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:postData];

NSHTTPURLResponse *urlResponse = nil;
NSError *error = nil;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];

NSLog(@"response data = %@", responseData);

我迷失在无知的新手领域,并认为最后一行会在我的 Objective C 控制台中打印出“已验证”或“错误”,但它会返回一个整数(我敢肯定,对于那些以前做过的人来说,这是显而易见的=))。

谁能告诉我如何在我的 Objective C 日志中看到 webMethod 返回值?

- 编辑 - 我刚刚注意到我得到一个 200 的 HTTP 响应状态代码,无论我是否使用正确的用户名/密码组合,我猜这也可能意味着问题出在其他地方?

4

1 回答 1

1

您可以NSString使用NSData响应中返回的内容创建一个。例如:

NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
于 2012-11-19T12:35:58.373 回答