将参数传递给Web方法

时间:2012-11-19 12:24:37

标签: c# objective-c xmlhttprequest webmethod

在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,无论我是否使用正确的用户名/密码组合,我猜这也可能意味着问题出在其他地方?

1 个答案:

答案 0 :(得分:1)

您可以使用响应中返回的NSString创建NSData。 E.g:

NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];