Ich möchte eine Bild-URL mit Alamofire auf meinen Server hochladen. Ich habe eine Struktur, die meine Bild-URL und eine CGRect hält, die auf dem Rahmen wie folgt aussieht:Struct zum Server hochladen Mit Alamofire
public struct TGImage {
private(set) var url: String?
private(set) var crop: CGRect
public init(url: String, crop: CGRect) {
self.url = url
self.crop = crop
}
}
und wie dies in den viewDidLoad()
mein Projekt:
let tgImageURL = TGImage(url: "http://media.gettyimages.com/photos/model-walks-the-runway-at-the-tory-burch-fw17-show-during-new-york-picture-id635259314", crop: CGRect(x: 0, y: 0, width: 499, height: 358))
Mein Server nimmt in dieser Struktur und gibt json zurück, aber ich weiß nicht, wie ich es auf den Server hochladen soll. Das ist, was ich bisher für die Funktion auf der Rahmenseite der Dinge:
public func detectBoxes(image: TGImage) {
let user = "key_wcjRv0QAasd76W83tZHrIH1Y70U"
let password = ""
var headers: HTTPHeaders = ["Content-Type" : "application/json"]
if let authorizationHeader = Request.authorizationHeader(user: user, password: password) {
headers[authorizationHeader.key] = authorizationHeader.value
}
Alamofire.request("http://api-dev.websiteURL.co/v1/prediction/tag", headers: headers)
.responseJSON { response in
debugPrint(response)
}
}
und auf der Projektseite:
tg.detectBoxes(image: tgImageURL)
1. zu verwenden, das Format zu verwenden planen, die Struktur auf den Server zu senden? Der Inhaltstyp Ihrer Anfrage ist JSON 2. Ich sehe keine Verwendung von Image in detectBoxes - es scheint mir, dass Sie Ihre Struktur in JSON-String transformieren und dann an den Server senden sollten –
@inspector_60 muss ich wirklich transformieren zu JSON? Könnte ich möglicherweise die URL und ein Array von 4 Zahlen hochladen, die die "crop" Variable aka (width, height, x, y) repräsentieren? Ich habe wirklich nach der akutalen Funktion gefragt. Wie würde ich den tatsächlichen Code implementieren –
Es hängt von Ihrer Serverimplementierung ab, der Client und der Server müssen sich auf eine gemeinsame "Sprache" und normalerweise JSON oder XML einigen, so dass Sie Ihr Objekt zu JSON oder XML serialisieren müssen. Es scheint in Ihrem Code, dass es JSON sein sollte. Jede Art der Serialisierung Ihrer Struktur ist keine schwierige Aufgabe, Sie können die JSON-Serialisierung verwenden, die ein wenig umständlich ist (auf Swift 4 wurde verbessert) oder Open Source-Bibliothek wie SwiftyJSON [link] (https://github.com/SwiftyJSON/SwiftyJSON) –