Примечание!
Чт - очень старый ответ, теперь он доступен только для исторических целей.
Замечательная библиотека ASIHttpRequest нетдольше существует;технология сейчас совершенно другая.
Это невероятно просто сделать с помощью ASIHttpRequest.
(Асинхронный - это так просто, нет причины, по которой вы бы никогда этого не делали)-синхронно.)
Вот некоторые грубые выдержки, которые могут помочь вам начать.
...
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
}
Не может быть проще.Вы просто вводите поля и значения.
По вашему вопросу, вот как вы отменяете запрос "в полете" ... простоустановите для делегата значение nil, а затем «отмените» его.
[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
"Создание асинхронного запроса"
это, наверное, почти наверняка, самая удивительно простая сетевая библиотека на любой платформе.Делать то, что вы описываете, тривиально, к счастью.Наслаждайтесь.