NSURLConnection различают 2 разных запроса - PullRequest
2 голосов
/ 06 декабря 2011

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

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)aResponse
{
    NSLog(@"------------------------------- connectionDidReceiveResponse");
    expectedResponseLength = [NSNumber numberWithFloat:[aResponse expectedContentLength]];
    URLresponse = aResponse;
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{   



    [self.responseData appendData:data];
}

Как я могу выполнить мой запрос на публикацию, как показано ниже, без вызова (автоматически) этих 2 методов (вверх) (используется при загрузке информации) и без замораживания пользовательского интерфейса (мне все равно, когда я делаю запрос, но нужны данные в 1-м случае)?

Мой запрос на пост такой:

- (void)postRequestWithURLState:(NSString *)url
{
    NSString *bodyRequest = nil;
    NSURL *requestURL = [NSURL URLWithString:url];
    NSMutableURLRequest *theRequest = [[NSMutableURLRequest alloc] init];

    //NSLog(@"-------------- bodyRequest: %@", bodyRequest);



    [theRequest setURL:requestURL];
    [theRequest setTimeoutInterval:2.0];
    [theRequest setHTTPMethod:@"POST"];
    [theRequest setHTTPBody:[bodyRequest dataUsingEncoding:NSASCIIStringEncoding]];
    [self.oauthAuthentication authorizeRequest:theRequest];
    NSURLConnection *conn = [NSURLConnection connectionWithRequest:theRequest delegate:self];




    self.web = conn;




}

Ответы [ 2 ]

1 голос
/ 14 января 2013

Я искал решение в интернете, в конце концов я просто создал свой собственный подкласс NSURLConnection и назначил переменную тега для различения. Проверьте это сообщение в блоге для получения дополнительной информации

0 голосов
/ 06 декабря 2011

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

...