Intereting Posts
Почему полная остановка «.», А не символ плюса, «+», для конкатенации строк в PHP? Получить данные из двух моделей на одной странице – Magento Как получить загруженные данные файла после загрузки после завершения Фильтрация контента на основе слов Php, как идти с дня года до настоящего времени и наоборот PHP TCPDF ERROR: невозможно создать выходной файл, папка существует и имеет правильные разрешения Переменная не существует в symfony2 Попытка установить OAuth на Ubuntu, но получить ошибки Как отобразить список лет, упорядоченный по столетию PHP, Объединение массивов с помощью общих ключей PHP: возвращает строку между двумя символами Плагин загрузки файлов JQuery: динамически изменить путь загрузки? Отобразить установленный флажок в форме для формирования отправки POST Как заменить белый прямоугольник в изображении с помощью ImageMagick? автоматически создать кнопку покупки сейчас paypal?

Выполнение скрипта PHP с использованием объектно-c

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

Это то, что называется HTTP POST?

incrementOrDecrementURL = [[NSString alloc] initWithFormat:@"http://myURL/doScript.php"]; NSURL *requestURL = [[NSURL alloc] initWithString:incrementOrDecrementURL]; //The actual request ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:requestURL]; // Becoming the request delegate //To get callbacks like requestFinished: or requestFailed: [request setDelegate:self]; // Start request [request startAsynchronous]; 

form the docs: Отправка формы POST с помощью ASIFormDataRequest

 ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; [request setPostValue:@"Ben" forKey:@"first_name"]; [request setPostValue:@"Copsey" forKey:@"last_name"]; [request setFile:@"/Users/ben/Desktop/ben.jpg" forKey:@"photo"]; 

Но также обратите внимание, что ASIHTTPRequest больше не поддерживается его оригинальным автором.

Это будет запрос oneway, а не POST.

Но вы никогда не должны обновлять базу данных с помощью запроса GET, поэтому вы должны использовать POST.

Один из способов сделать это – немедленно вернуть ответ, а затем обновить базу данных, но лучший подход, поскольку эта библиотека больше не поддерживается ( http://allseeing-i.com/ASIHTTPRequest/ ), вы можете использовать NSUrlConnection и просто игнорируйте ответ и продолжайте.

ASIHTTPRequest по умолчанию отправляет запрос GET, а не POST. Правильно, что GET ничего не обновляют на сервере, поэтому вы должны использовать POST: [request setRequestMethod:@"POST"] . Вы можете просто вернуть doScript.php ответ HTTP 204 No Content. Функция PHP header () . Но это хороший дизайн, чтобы вернуть хотя бы какой-то код статуса конкретного протокола, относящийся к тому, что на самом деле произошло на сервере. Я часто возвращаю простой ответ JSON, например {"status":"OK"} .