невозможно подключиться к wcf-сервису на базе мыла с iPhone - PullRequest
1 голос
/ 08 февраля 2012

Я пытаюсь использовать веб-службу SOAP из моего приложения для iPhone, но при проверке с Чарльзом я получаю следующую ошибку:

Значение не может быть нулевым.Имя параметра: s

Ниже приведен мой код:

NSString *soapMessage = [NSString stringWithFormat:@"<?xml version=\"1.0\" encoding=\"utf-8\"?><SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"><SOAP-ENV:Body><updateTimesheet><TimeSheetHourID>222</TimeSheetHourID></updateTimesheet></SOAP-ENV:Body></SOAP-ENV:Envelope>"];

NSURL *url = [NSURL URLWithString:@"http://172.xx.xxx.xx:xxxx/postService.svc/basic"];

NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];


NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMessage length]];
NSLog(@"Message Length..%@",msgLength);

[theRequest addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue: @"urn:IpostService/updateTimesheet" forHTTPHeaderField:@"SOAPAction"];
[theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPBody: [soapMessage dataUsingEncoding:NSUTF8StringEncoding]];

NSHTTPURLResponse* urlResponse = nil;
NSError *error = [[NSError alloc] init];
//NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];

NSData *responseData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&urlResponse error:&error];
NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"Response Code: %d", [urlResponse statusCode]);
if ([urlResponse statusCode] >= 200 && [urlResponse statusCode] < 300) {
    NSLog(@"Response: %@", result);
    //here you get the response 
}

В ответ я получаю код ошибки 500.Может кто-нибудь, пожалуйста, помогите мне?

Спасибо
Pankaj

Ответы [ 2 ]

0 голосов
/ 08 февраля 2012

проблема не с вашим кодом здесь .. я советую вам отслеживать код веб-сервиса.

0 голосов
/ 08 февраля 2012

Ошибка 500 - Внутренняя ошибка сервера. Что значит - Сервер обнаружил непредвиденное состояние, которое не позволило ему выполнить запрос.

Убедитесь, что вы отправляете правильный запрос на ваш сервер. Вы можете потреблять это где-то еще?

...