現在Swiftとphpでpost通信を行おうとしているのですがうまくいきません。
URLSession.shared.dataTaskでerrorはnilになっているものの、期待したデータが返ってきません。
試しに以下のSwiftのコードのようにjsonを作ってpostを行いました。
swift
1 let myUrl = URL(string: "http://localhost/piyopiyo.php") 2 let param: [String: Any?] = [ 3 "image": userImage?.base64EncodedString(), 4 "name": userName, 5 "country": userCountry, 6 "comment": comment, 7 "title": title, 8 ] 9 10 if let url = myUrl { 11 var request = URLRequest(url: url) 12 request.httpMethod = "POST" 13 request.httpBody = try? JSONSerialization.data(withJSONObject: param, options: []) 14 URLSession.shared.dataTask(with: url, completionHandler: {(data, request, error) in 15 print("テスト:\(data)") 16 }).resume() 17 } 18
そしてphpでは受け取った特定の値をそのまま返すようにしています。
php
1<?php 2 3 echo $_POST['name']; 4 5 ?> 6
しかしログには「テスト:Optional(0 bytes)」と返ってきます。
jsonを作るためのdictionaryの要素は全てオプショナル型なので、それが問題でしょうか?
Swiftでサーバにリクエストを送るときは全てオプショナルを外さないといけないのではと思ってアンラップした状態でも結局同じログが返ってきたのですが......。
上記のコードのどこがおかしいのでしょうか?
どなたかわかる方がいれば教えていただきたいです。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/22 22:58
2016/12/23 06:31