json を送信しないPOSTがなぜか見つからず、やっと見つかったので備忘録として記録しておきます。
以下、コード
let apiURL:String = "https://webtopi.biz/sample/sample.php"
///パラメータで投げる変数たち
let param1 = "unkounko"
let param2 = 13222222
let param3 = "add"
guard let requestURL = URL(string: apiURL) else{return}
var request = URLRequest(url: requestURL)
request.httpMethod = "POST"
// パラメータの設定
let paramStr = "user_id=\(param1)&content_id=\(param2)&mode=\(param3)"
request.httpBody = paramStr.data(using: String.Encoding.utf8);
///taskの設定
let task = URLSession.shared.dataTask(with: request) {
(data, response, error) in
///エラーがあったら
if let error = error {
print("Error took place \(error)")
return
}
// 受信データを文字列に
if let data = data, let dataString = String(data: data, encoding: .utf8) {
print(String(dataString))
}
}
//実行
task.resume()
結果
{
"status": "success",
"content_id": "13222222",
"proc": "add"
}
と、こんな感じらしい。
paramStrを生成するのがなんか違和感があるけど…。
Dictionary型でhttpbodyは作れないんだろうか…
ひとまず、いったんこれで