マストドンへ画像を送る
現在、Mastodonへ画像を投稿するプログラムを組んでいるのですが、下記の投稿のものを参考に組みましたが
http://qiita.com/aryzae/items/8c16bc456588c1251f48#_reference-32d9e31807ff872c27f8
送る際は、85406 bytesのデータ量を確認しているのですが受信が0bytesと表示され悩んでいます。
本来であれば、json形式で幾らかの受信があるはずなのですが・・・
本家のGitHubのAPI一覧を拝見し(クロームで翻訳)、解決できずに困っています。
よろしくお願いします。
func testToot(){ let session = URLSession.shared let i = Item() let url = URL(string:"https://pawoo.net/api/v1/media")! let param:[String:String] = ["access_token":i.getItem(clum: "access_token") as! String] let image:Data = UIImageJPEGRepresentation(UIImage(named:"a.jpg")!,0.8)! as Data let boundary = "Boundary-\(NSUUID().uuidString)" var req = URLRequest(url:url) req.httpMethod = "POST" req.addValue("application/json", forHTTPHeaderField: "Content-Type") req.addValue("multipart/form-data;boundary=\(boundary)",forHTTPHeaderField:"Content-Type") req.httpBody = createBody(_param: param, _key:"file", imageData: image, _boundary: boundary) let task = session.dataTask(with: req,completionHandler:{data,response,error in do{ print(response!) } }) task.resume() } func createBody(_param:[String:String],_key:String,imageData:Data,_boundary:String)->(Data){ let file = "a.jpg" let type = "image/jpeg" var body = Data(); for(key,val) in _param { body.append("--`\(_boundary)\r\n") body.append("Content-Disposition:form-data; name=\(key)") body.append("\(val)\r\n") } body.append("--\(_boundary)\r\n") body.append("Content-Disposition: form-data;name=\"\(_key)\"; filename=\"\(file)\"\r\n") body.append("Content-Type \(type)\r\n\r\n") body.append(imageData) body.append("r\n") body.append("--\(_boundary)--\r\n") return body } } extension Data{ mutating func append(_ str:String){ let data = Data(str.utf8) return self.append(data) } }
responseの中身
{ URL: https://pawoo.net/api/v1/media } { status code: 400, headers { "Content-Length" = 0; "Content-Type" = "text/html; charset=utf-8"; Date = "Fri, 12 May 2017 12:44:39 GMT"; Vary = Origin; "x-request-id" = "aasf0bb-fb82-45c1-34d0-676ffc1aww15"; "x-runtime" = "0.155211"; } }