2012-11-19 2 views
0

На веб-сервере следующий метод:передачи параметров веб-метода

[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, но возвращает целое число (что, я уверен, очевидно для тех из вас, кто сделал это раньше =)).

Может ли кто-нибудь сказать мне, как я могу увидеть значение возвращаемого webMethod в моем журнале Objective C?

-EDIT- Я только что заметил, что получаю код ответа HTTP-ответа 200, независимо от того, использую ли я правильную комбинацию userName/password или нет, что, как я предполагаю, может также означать, что проблема лежит в другом месте ?

ответ

1

Вы можете создать NSString используя NSData, указанный в ответе. Например:

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

Thanks Ian. Должна ли эта строка содержать возвращаемое значение webMethod? Кажется, он возвращает HTML только для страницы (хотя, я думаю, это может означать, что моя ошибка находится в фактическом соединении). – Robert

+1

Да, в теории вы должны увидеть напечатанную «проверенную» или «ошибку». Тот факт, что вы получаете HTML, часто означает, что вы получаете сообщение об ошибке на стороне сервера. –

+0

ОК, спасибо. Я займусь этим. – Robert

Смежные вопросы