Я пытаюсь запустить HTTP-запрос в Swift, чтобы параметры POST 2 к URL.
Пример:
Ссылка на сайт: www.thisismylink.com/postName.php
Params:
id = 13
name = Jack
Какой самый простой способ сделать это?
Я даже не хочу читать ответ. Я просто хочу отправить это для внесения изменений в моей базе данных через файл PHP.
post
swift
parameters
http-post
httprequest
angeant
источник
источник
Ответы:
В Swift 3 и более поздних версиях вы можете:
Куда:
Это проверяет как фундаментальные сетевые ошибки, так и высокоуровневые ошибки HTTP. Этот процент также правильно экранирует параметры запроса.
Заметьте, я использовал
name
оJack & Jill
, чтобы проиллюстрировать правильныйx-www-form-urlencoded
результатname=Jack%20%26%20Jill
, который «закодирован в процентах» (то есть пространство заменяется на,%20
а&
значение в заменяется на%26
).Смотрите предыдущую редакцию этого ответа для Swift 2.
источник
POST
запрос, вы можете использовать выше.$_POST
именами файлов, я бы сократил это до чего-то более простого: PHP-скрипт вообще не будет работать, если вы не получите правильный URL-адрес. Но это не всегда тот случай, когда вы должны включить имя файла (например, сервер может выполнять маршрутизацию URL или иметь имена файлов по умолчанию). В этом случае ОП дал нам URL, который включал имя файла, поэтому я просто использовал тот же URL, что и он.URLSession
в этом отношении. Все сетевые API по своей природе асинхронны, и они должны быть. Теперь, если вы ищете другие изящные способы работы с асинхронными запросами, вы можете обернуть их (какURLSession
запросы, так и запросы Alamofire) в асинхронный пользовательскийOperation
подкласс. Или вы можете использовать библиотеку обещаний, например PromiseKit.Swift 4 и выше
источник
Для тех, кто ищет чистый способ кодирования запроса POST в Swift 5.
Вам не нужно вручную добавлять процентное кодирование. Используйте
URLComponents
для создания запроса GET URL. Затем используйтеquery
свойство этого URL, чтобы получить надлежащим образом экранированную строку запроса.query
Будет правильно спасся строка:Теперь вы можете создать запрос и использовать запрос как HTTPBody:
Теперь вы можете отправить запрос.
источник
Вот метод, который я использовал в своей библиотеке журналов: https://github.com/goktugyil/QorumLogs
Этот метод заполняет HTML-формы внутри Google Forms.
источник
application/x-www-form-urlencoded
ты делаешь?источник
источник
Все ответы здесь используют объекты JSON. Это дало нам проблемы с
$this->input->post()
методами наших контроллеров Codeigniter. НеCI_Controller
может прочитать JSON напрямую. Мы использовали этот метод, чтобы сделать это без JSONТеперь ваш CI_Controller сможет получить
param1
иparam2
использовать$this->input->post('param1')
и$this->input->post('param2')
источник