Это приемлемый запрос POST, который принимает сервер (используя codeigniter).
Как показано, он не принимает ключи, а только значения.
Первое значение начинается с «/», а между значениями используется «/».
http://example.com/index.php/api/signup/value01/value02/value03
У меня есть этот код, написанный на Swift3.
let serverUrl = "http://example.com/index.php/api/signup"let parameterString = "/value01/value02/value03"
let url: URL = URL(string: serverUrl)!
let session = URLSession.shared
let request = NSMutableURLRequest(url: url)
request.httpMethod = "POST"request.cachePolicy = NSURLRequest.CachePolicy.reloadIgnoringCacheData
request.httpBody = parameterString.data(using: String.Encoding.utf8)
let task = session.dataTask(with: request as URLRequest, completionHandler: {(data, response, error) in
}) task.resume()
Он получает ошибку, и сервер отвечает, что не получил ни одного параметра.
Но, если я скопирую и вставлю приведенный ниже код в браузер, он будет работать отлично.
http://example.com/index.php/api/signup/value01/value02/value03
Код swift3 работал для другого сервера, который принимал запросы POST, написанные таким образом.
http://example.com/api?key=value&key=value
Спасибо @ Tj3n @ Лео Дабус @ GoodSp33d!
Я смог решить проблему, используя ваши предложения.
Сервер php также использовал «URL-кодирование RFC 1738 (например,«% E6% 84% 9B »для« 愛 »)» для определенных строковых значений.
Итак, я добавил
let newString = oldString.addingPercentEncoding(withAllowedCharacters:NSCharacterSet.urlQueryAllowed)!
закодировать некоторые строковые значения и решить проблему.
Итак, это решение в упрощенном варианте.
let serverUrl = "http://example.com/index.php/api/signup/value01/value02/value03"
let url: URL = URL(string: serverUrl)!
let session = URLSession.shared
var request = URLRequest(url: url)
request.httpMethod = "POST"request.cachePolicy = NSURLRequest.CachePolicy.reloadIgnoringCacheData
let task = session.dataTask(with: request as URLRequest, completionHandler: {(data, response, error) in
}) task.resume()
Это реальный URL запроса POST, который отправил мой код.
http://example.com/index.php/api/signup/1282283772/none/0204291/%E6%84%9B/0/70/null
Других решений пока нет …