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は作れないんだろうか…

ひとまず、いったんこれで

コメント