Отправить почтовый запрос с токеном на предъявителя и телом json в Swift - PullRequest
0 голосов
/ 15 сентября 2018

Я довольно новичок в Swift, и я попытался отправить запрос на сайт, но пока не смог получить рабочий результат.Все примеры, которые я нашел, также не работали для меня.

Мне нужно отправить тело json на https://mypostrequestdestination.com/api/

Тело json содержит только одно значение

{State:1}

И Заголовок должен содержать

{"Authorization": bearer "token"}

{"Accept":"application/json"}

{"Content-Type":"application/json"}

Надеюсь, кто-нибудь может мне помочь.

Спасибо!

1 Ответ

0 голосов
/ 16 сентября 2018

Этот работал для меня

let token = "here is the token"
let url = URL(string: "https://mypostrequestdestination.com/api/")!

// prepare json data
let json: [String: Any] = ["State": 1]

let jsonData = try? JSONSerialization.data(withJSONObject: json)

// create post request
var request = URLRequest(url: url)
request.httpMethod = "POST"

// insert json data to the request
request.httpBody = jsonData
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
request.setValue( "Bearer \(token)", forHTTPHeaderField: "Authorization")

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    guard let data = data, error == nil else {
        print(error?.localizedDescription ?? "No data")
        return
    }
    let responseJSON = try? JSONSerialization.jsonObject(with: data, options: [])
    if let responseJSON = responseJSON as? [String: Any] {
        print(responseJSON)
    }
}

task.resume()
...