0
上的Web服務器是下面的方法:參數傳遞到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返回值嗎?
-EDIT- 我剛剛注意到,無論我使用的是否是正確的用戶名/密碼組合,或是否使用了正確的用戶名/密碼組合,我都會得到一個200的HTTP響應狀態碼,這也意味着問題在於別處?
謝謝伊恩。該字符串是否應該包含webMethod返回值?它似乎只返回頁面的HTML(儘管我猜這可能意味着我的錯誤是在實際的連接中)。 – Robert
是的,理論上你應該看到「已驗證」或「錯誤」的打印。你得到HTML的事實經常意味着你在返回的服務器端出現錯誤。 –
好的,謝謝。我會研究一下。 – Robert