Я изо всех сил пытаюсь понять, как взаимодействовать с этим блоком HTML
на веб-сайте. Я взаимодействую с Objective-C. На веб-странице есть текстовая область, которую вы можете ввести, и на ней есть кнопка отправки. HTML
выглядит следующим образом:Как отправить POST в «textarea» с NSURLConnection?
<fieldset>
<textarea id="postbody" cols="40" rows="5" name="postbody">
This has now been taken. Thank you to everyone who has shown an interest.
</textarea>
<br>
<input type="submit" value="Send TAKEN message">
</fieldset>
Во всяком случае, я пытаюсь взаимодействовать с этим сайтом, используя NSURLConnection
:
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:modifiedURL] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
NSString *convertedString=[NSString stringWithFormat:@"postbody=%@", @"This item has been received"];
[request setHTTPBody:[NSData dataWithBytes:[convertedString UTF8String] length:strlen([convertedString UTF8String])]];//this attaches the username and password key we created with convertedString to the request we just initialized
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPMethod:@"POST"];//we're sending information TO the site
self.safetyRequest = request;//this is to handle the possibility that the user hits back and chooses the same menu item more than once.
[self setReceivedData:[NSMutableData dataWithCapacity: 0]];//make sure we re-initialize our data container
[self setTheConnection:[[NSURLConnection alloc] initWithRequest:request delegate:self]];//this fires off the URL request to the web!! This is an asynchronous request, so we need to implement the delegates for NSURLConnection.
Это, однако, не работает по какой-то причине. Сайт не отвечает и не выполняет требуемые действия по отправке ответа и отправке его. Что я делаю не так?
Вы можете уточнить "сайт не отвечает"? Вы просмотрели ответ, полученный в 'connection: didReceiveResponse:'? Что такое 'statusCode'? Вы обрабатывали ошибки в 'connection: didFailWithError:'? Все, что там было? Даже если ответ был искажен, вы бы ожидали 'didReceiveResponse' или' didFailWithError', по крайней мере. – Rob
Я узнал, что я делаю неправильно. Я фактически отправлял URL-адрес, который не принимает POSTing. Когда вы нажимаете кнопку отправки, она фактически отправляет эту информацию на другой URL-адрес. Как только я это выяснил, все получилось просто отлично. Спасибо всем кто ответил! – Dave