Вызов веб-сервиса в приложении iPhone? - PullRequest
0 голосов
/ 15 ноября 2011

Я использую мыльный веб-сервис.

В этом я звоню по одному веб-методу.Здесь, если я вызываю из одной части моего кода, работает нормально, успешно вызывает сервис и получает данные успешно.

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

Заранее спасибо

Подробнее.

-(void) downloadAndParse:(NSMutableURLRequest *)sentReq  {

    conn =  [[NSURLConnection alloc] initWithRequest:sentReq delegate:self];

    if (conn) {
        webData = [[NSMutableData data] retain];
    }
}

-(void)fullBarcodeSearch:(NSString *)code {

    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
    URLRequest *r  = [[URLRequest alloc] init];

    NSMutableURLRequest *req = [r fullBarcodeSearch:code];
    [r release];
    [self downloadAndParse:req];

}

В URLRequest.m

-(NSMutableURLRequest *) addHeaderToSoapXML:(NSString *) soapMsg {



    NSURL *url = [NSURL URLWithString:str];

    NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url];
    NSString *msgLength = [NSString stringWithFormat:@"%d",[soapMsg length]];
    [req addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"content-type"];
    [req addValue:msgLength forHTTPHeaderField:@"Content-Length"];
    [req setHTTPMethod:@"POST"];
    [req setHTTPBody:[soapMsg dataUsingEncoding:NSUTF8StringEncoding]];
    return req;
}

если служба не вызывается, я получаю ошибку, подобную этой

* oid _WebThreadLockFromAnyThread (bool), 0x6958130: получение веб-блокировки из потока, отличного от основного потока или веб-потока.UIKit не следует вызывать из вторичного потока. *

Пожалуйста, помогите мне

Заранее спасибо

1 Ответ

0 голосов
/ 15 ноября 2011

Вам необходим NSURLConnection для выполнения NSURLRequest. Поиск Apple Docs в классе. Что-то вроде:

[urlConnection sendSynchronousRequest:urlRequest returningResponse: &urlResponse error:&error]
...