При первом вызове веб-службы Microsoft нет ответа

#objective-c #web-services

#objective-c #веб-службы

Вопрос:

У меня есть приведенный ниже скрипт для подключения моей веб-службы Microsoft для вставки какой-либо записи в базу данных, каждый день утром, когда я возвращаюсь в офис, в первый раз, когда я запускаю приведенный ниже скрипт, он не работает нормально, похоже, что веб-служба не отвечает, но соединение в порядке, но когда я запускаю веб-службу.повторите сценарий во второй раз, результат в порядке. (найдена некоторая запись, вставленная в базу данных)

Похоже, что веб-служба спала ночью, когда я запускаю скрипт в первый раз, просто разбудите веб-службу, когда я запускаю скрипт во второй раз, тогда веб-служба работает нормально.

У кого-нибудь есть представление об этой ситуации? Спасибо.

 NSString *soapMessage = [NSString stringWithFormat:@"<?xml version="1.0" encoding="utf-8"?>n"
                                         "<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance>" xmlns:xsd="http://www.w3.org/2001/XMLSchema>" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/>">n"
                                         "<soap:Body>n"
                                         " <Ins_VIP xmlns="http://tempuri.org/>">n"
                                         "<strVIPNo>%@</strVIPNo>n"
                                         "</Ins_VIP>n"
                                         "</soap:Body>n"
                                         "</soap:Envelope>n" , strVIPNo];


NSURL *url = [NSURL URLWithString:@"http://192.168.0.1/VIPWebService/service1.asmx"];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMessage length]];

[theRequest addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue: @"http://tempuri.org/Ins_VIP" forHTTPHeaderField:@"SOAPAction"];
[theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPBody: [soapMessage dataUsingEncoding:NSUTF8StringEncoding]];

NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];


if( theConnection )
{
   NSLog(@"No Problem");
}
else
{
   NSLog(@"theConnection is NULL");
}
 

Комментарии:

1. Вам необходимо выполнить некоторую отладку на стороне сервера, чтобы определить, что происходит.

2. Можете ли вы отследить HTTP-вызовы и посмотреть, каков статус первого неудачного вызова? Если ему удалось связаться с сервером, это будет 200. Вы можете использовать приложение Charles для мониторинга сетевой активности.