在Web服务器上有以下方法:
[WebMethod()]
public static string login(string userName, string password)
{
if (usernName == "test" && password == "test")
{
return "validated";
}
return "error";
}
我正在尝试使用以下Objective 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的返回值?
CNC中 我刚刚注意到我得到的HTTP响应状态代码为200,无论我是否使用正确的用户名/密码组合,我猜这也可能意味着问题出在其他地方?
答案 0 :(得分:1)
您可以使用响应中返回的NSString
创建NSData
。 E.g:
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];