POSTリクエストの本文に何かを送るURLSessionを取得できません。ここSwift 3 URLSessionが空のリクエストを送信しています
が私のコードである:
// Set up the request
var request = URLRequest(url: URL(string: baseURL + url)!)
request.httpMethod = "POST"
let jsonData = try JSONSerialization.data(withJSONObject: values,
options: .prettyPrinted)
request.httpBody = jsonData
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
let config = URLSessionConfiguration.ephemeral
let session = URLSession(configuration: config, delegate: self, delegateQueue: OperationQueue.main)
let task = session.dataTask(with: request) { data, response, err in
if let err = err {
print(err)
}
else {
let jsondata = data!
do {
let sessionData =
try JSONSerialization.jsonObject(with: jsondata, options: .mutableLeaves)
as? Dictionary<String, String>
callback.taskComplete(response: sessionData, task: task)
}
catch {
print(error)
}
}
}
task.resume()
サーバは要求を受信したが、体は空であり、コンテンツタイプヘッダがnullです。自己署名証明書を使って開発しているのでデフォルトのセッションを使用できないため、クラスをURLSessionデリゲートにする必要があります。
私はSwift 3、XCode 8、およびiOS 10を使用しています。助けていただければ幸いです。
本当に 'jsonData'プロパティにデータがありますか? –
jsondataでプロジェクトをデバッグするか、ログに記録してチェックしてください –
すべてがうまく見えますが、唯一の問題はあなたの 'httpBody'です。 –