В коде нижебыстр URLRequest не отправляют параметры
let bodyData = "?sub=\(id)&name=User&[email protected]"
let url = NSURL(string: "https://httpbin.org/get");
let request:NSMutableURLRequest = NSMutableURLRequest(url:url as! URL)
request.httpMethod = "GET"
request.httpBody = bodyData.data(using: String.Encoding.utf8);
NSURLConnection.sendAsynchronousRequest(request as URLRequest, queue: OperationQueue.main)
{
(response, data, error) in
if let HTTPResponse = response as? HTTPURLResponse {
let statusCode = HTTPResponse.statusCode
if statusCode == 200 {
// Yes, Do something.
let json = try? JSONSerialization.jsonObject(with: data!, options: [])
if let dictionary = json as? [String: Any] {
let args = dictionary["args"]
NSLog("args:\(args)")
for (key, value) in dictionary{
NSLog("key:\(key) value:\(value)")
}
}
}
}
}
идентификатора является строкой, переданной в функцию.
Имеет верные данные, но тестовый сайт/url также возвращает в json формате любые параметры, которые вы его отправляете. Но этот фрагмент кода, похоже, не отправляет параметры запроса, определенные в bodyData, и я не могу понять, почему.
JSON-объект верхнего уровня должен быть массив или словарь, а и нужно использовать JSONSerialization, чтобы получить данные в формате JSON от него. вы должны использовать URL вместо NSURL и URLRequest вместо NSURLReques. если вам нужен измененный запрос, объявите URLRequest как переменную. –
Благодарим за быстрый ответ. Оказывается, что методы GET не добавляют параметры запроса к URL-адресу. Поэтому при создании запроса параметры должны быть частью URL. –
Да, я не заметил, что вы использовали вместо него пост. Вы можете использовать URLComponents –