Ответ 1
Внимание!
Th - очень старый ответ, теперь здесь только для исторических целей.
Прекрасная библиотека ASIHttpRequest больше не существует; теперь технология совершенно другая.
Это невероятно просто сделать с помощью ASIHttpRequest.
(Asynchronous настолько прост, нет причин, по которым вы это сделаете не асинхронно).
Вот некоторые грубые выдержки, которые могут вас завести.
...
ASIFormDataRequest *request;
...
NSURL *url = [NSURL URLWithString:@"https://blah.blah/blah.cgi?blah"];
request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:@"fred" forKey:@"username"];
[request setPostValue:@"flint" forKey:@"passie"];
[request setPostValue:@"stone" forKey:@"town"];
// send up data...
[request setData:[NSData dataWithBytes:blah length:blah] forKey:@"thefile"];
// or perhaps something like...
[request setData:imageData withFileName:@"blah.png"
andContentType:@"image/jpeg" forKey:@"photoimage"];
[request setDelegate:self];
[request setDidFinishSelector:@selector(postingDone:)];
[request setDidFailSelector:@selector(postingDoneProblem:)];
[request startAsynchronous];
...
-(void) postingDone:(ASIHTTPRequest *)request
{
// it worked
}
-(void) postingDoneProblem:(ASIHTTPRequest *)request
{
// failed
}
Не может быть проще. Вы в основном просто печатаете поля и значения.
По вашему вопросу, вот как вы отменяете запрос "в полете" ... просто установите делегат на нуль и затем отмените его.
[myRequest setDelegate:nil];
[myRequest cancel];
[myRequest release];
ASIHttpRequest - это "чудо-библиотека". Если вы новичок в iOS, ASIHttpRequest - это просто самая популярная сторонняя библиотека. По сути, каждое приложение iPhone из 300 000 iPhone-приложений использует его.
Если возможно, БУДЬТЕ УВЕРЕНЫ, чтобы пожертвовать несколько баксов парню - если он перестанет поддерживать эту библиотеку, запущено 100 000 программистов iPhone!
документация тривиальна, ребенок может следовать за ней:
http://allseeing-i.com/ASIHTTPRequest/How-to-use
"Создание асинхронного запроса"
это, наверное, почти наверняка - самая удивительно простая сетевая библиотека на любой платформе. Довольно легко делать то, что вы описываете, счастливо. Наслаждайтесь.