マストドンへ画像を送る
現在、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";
} }