Ho provato diverse cose per creare l'equivalente rapido di questa richiesta cURL, ma non riuscivo a farlo funzionare.equivalente in cURL in Swift - iOS
curl -X POST -F "[email protected]/Users/nicolas/sample.png" -F "mode=document_photo" https://api.idolondemand.com/1/api/sync/ocrdocument/v1 -F "apikey=xxx-xxx-xxx-xxx-xxx"
Il codice corrispondente è indicato di seguito.
func getText (image: UIImage){
let apiKey = "xxx-xxx-xxx-xxx-xxx"
let request = NSMutableURLRequest(URL: NSURL(string: "https://api.idolondemand.com/1/api/sync/ocrdocument/v1")!)
request.HTTPMethod = "POST"
request.addValue(apiKey, forHTTPHeaderField: "apikey")
request.addValue("document_photo", forHTTPHeaderField: "mode")
request.HTTPBody = UIImageJPEGRepresentation(image, 1)
let task = NSURLSession.sharedSession().uploadTaskWithRequest(request, fromData: UIImageJPEGRepresentation(image, 1), completionHandler: {data, response, error -> Void in
if let _ = data {
var error:NSError? = nil
do {
let jsonObject : AnyObject = try NSJSONSerialization.JSONObjectWithData(data!, options: [])
let json = JSON(jsonObject)
if let ocr_results = json["text_block"][0]["text"].string {
self.returnText(ocr_results)
}
} catch let error1 as NSError {
error = error1
print(error)
} catch {
fatalError()
}
}
})
Sarei felice se ottengo una risposta.
Cosa hai cercato per trovare questa libreria? Perché questa libreria non funziona in swift 2.0, quindi posso cercare un'altra libreria che gira con swift 2.0. – NMAC427
Ho cercato "multipart/form-data". Nota che puoi anche usare le librerie Objective-C, di cui ce ne sono molte. La maggior parte delle librerie di richieste HTTP è in grado di farlo: se dicono che supportano i caricamenti/l'invio di file, questo è il modo in cui è stato realizzato. – Jesper
Inoltre, la maggior parte delle librerie si prenderà cura di impostare 'NSURLRequest' interamente per te (in questo modo, ad esempio, non ottieni un' NSData' che devi assegnare a 'HTTPBody'). – Jesper