Tag: alamofire

阿拉莫菲尔多部分的要求

我是新的快速编程。 我正在尝试通过alamofire做多部分请求。问题是我的参数中的一个值是对象的数组。 我的问题是如何将对象数组追加到Multipart请求。 这是我的参数。 let parameters = [ "originguid":"63d6sd5", "signees":[Signess], //Here is issue "signees"is an array of objects "customer":"yes" ] as [String : Any] 这是我的要求 Alamofire.upload( .POST, URLString: myUrl, multipartFormData: { multipartFormData in if let img = self.imagePicked { multipartFormData.append(UIImageJPEGRepresentation(img, 0.2)!, withName: "fileset",fileName: "file.png", mimeType: "image/jpg") } if let file = self.filePicked{ let fileData = […]

authentication的http请求迅速Alamofire

我正在努力争取这个工作来向我的API发出请求。 没有一个令牌的作品,但是当我尝试添加额外的标题,事情变得复杂,对我来说。 首先,结构。 一个叫做: APIAsyncTask的类使请求 一个叫做APIParams的类,只是一个将参数发送给APIAsyncTask类的数据持有者。 一个名为DatabaseAPI的类使得构build参数并将其发送到APIAsyncTask类。 DatabaseAPI func someMethod() { let task = APIAsyncTasks() task.registerCallback { (error, result) -> Void in print("Finished task, back at DatabaseAPI") } let params2 = APIParams(request: .GET, apiPath: "Posts/1", apiToken: "4iTX-56w") task.APIrequest(params2) } APIAsyncTask 这部分是为了修复另一个错误,因为经理不是全球性的,任务被迅速取消。 var manager : Manager! init(authenticatedRequest : Bool, token: String?) { manager = Alamofire.Manager() print("Pre […]

Alamofire – 使用照片时图像上传失败

亲爱的stackoverflow社区, 我正在使用Alamofire将JSON和图像发送到REST API的iOS应用程序中工作。 图像被图像select器检索并存储在一个数组中。 问题是,只要我使用从互联网上下载的图像等图像上传工作。一旦我尝试上传照片,这是我正在使用的手机(从照片库中select)拍摄的上传失败并抛出一个400 – 错误的请求错误。 奇怪的是,当我可以上传照片,这是从另一个iPhone采取的,但被发送给我,但照片,这是用手机本身没有工作…是否有人有一个想法,为什么这个问题发生? 我有一个怀疑,iPhone的照片格式或数据可能不同于下载的,由于HDR和其他的东西,但我不知道这是否是问题。 下面是我使用的代码,它的标准很漂亮: func POST_WITH_ATACHMENTS(description: String, attachments: [UIImage], returnCompletion: @escaping (Bool) -> ()) { let parameters = ["ticket":"{ \"description\" : \"" + description + "\"}"] APIManager.Manager.upload(multipartFormData: { multipartFormData in for (key, value) in parameters { multipartFormData.append((value.data(using: .utf8)!), withName: key, mimeType: "application/json") } var counter = 1 for image […]

如何使用Alamofire 4.0创buildNTML请求?

这些是请求标题: let headers: HTTPHeaders = [ "Accept": "application/json", "username": "someUserName", "password": "aPasswordForSomeUserName" ] 当用下面的代码提出请求时,它会给我“最后的垃圾”。 但是,当我用JSONparsing器在线检查响应。 这是一个有效的JSON。 Alamofire.request("http://myserver/list.svc/random", headers: headers).responseJSON { response in print(response) } 我也试着提出这样的要求 : Alamofire.request("http://myserver/list.svc/random", headers: headers).responseString { response in print(response) } 我在控制台中得到这个消息:“401 UNAUTHORIZED” 。 我究竟做错了什么? 我相信,当使用responseJSON完成块它不抱怨Unauthorization ,但它抱怨坏的JSON(或一些垃圾)。 PS同样的要求与先进的rest客户端(铬扩展),并在铬浏览器工作正常。

用Alamofire下载后如何得到部分文件path?

我想保存下载文件到我的模型对象的path。 基于这个StackOverflow的答案 ,我应该“只存储文件名,然后结合它的文档目录的位置在飞行”。 那么在我的情况下,这是应用程序支持目录。 我不知道如何做到这一点。 下载文件的完整path是: /Library/ApplicationSupport/com.Company.DemoApp/MainFolder/myFile.jpg /Library/Application Support/是我无法保存在任何地方的部分,我必须在运行时从FileManager获取它。 com.Company.DemoApp/MainFolder/myFile.jpg是我可以存储在数据库/configuration文件中的文件path的一部分。 但是我不知道如何从Alamofire下载它后得到这个path: com.Company.DemoApp/MainFolder/myFile.jpg 。 例如,这里是下载文件的代码,我如何得到这个path? func destination(named name: String, pathExtension: String) -> DownloadRequest.DownloadFileDestination { let destination: DownloadRequest.DownloadFileDestination = { _, _ in let appSupportDirURL = FileManager.createOrFindApplicationSupportDirectory() let fileURL = appSupportDirURL?.appendingPathComponent("com.Company.DemoApp/MainFolder/\(name).\(pathExtension)") return (fileURL!, [.removePreviousFile, .createIntermediateDirectories]) } return destination } let finalDestination = destination(named: image.title, pathExtension: image.preview.pathExtension) Alamofire.download(urlString, […]

如何在Swift中使用Alamofire将发送数组的字典(JSON格式)发送到服务器3

我试图创build和发送字典JSON格式的数组Alamofire。 { "attendance": [{ "attndid":"0", "psngrtype": "student", "date":currentdate, "cuid": "25", "enttid": "21", }] } 在这里,我使用了tableview,在上面的“cuid”&“enttid”中我给出了可选的tableview单元格数据的值。 剩下的是不变的。 我传递一个字典数组,如果我select一个tableview单元格数据。 和两个数组,如果我select两个cells.etc ..和我使用下面的代码,我得到但得到问题创build字典格式。 我的代码: let arrayOfDictionaries: [[String:AnyObject]] = [ ["psngrtype":"student" as AnyObject, "attndid": "0" as AnyObject , "cuid":stdpasngerid as AnyObject, "enttid": entitID as AnyObject, "attnddate":CurrentDate as AnyObject ]] print(arrayOfDictionaries.toJSONString()) extension Collection where Iterator.Element == [String:AnyObject] { func toJSONString(options: JSONSerialization.WritingOptions […]

快速上传alamofire相机和图库图片3

嗨,我已经花了超过20小时,弄清楚如何从我的应用程序上传图像到服务器,我想上传的图像可以从相机或照片滚动…..这里是我的代码,它显示进度的上传,但没有达到服务器,从而得到负面的反应forms的服务器..请帮助我.. Alamofire.upload(multipartFormData: { multipartFormData in multipartFormData.append(UIImageJPEGRepresentation(image, 0.1)!, withName: imageName) for (key, value) in parameters { multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key) } }, to: URL_USER_PROFILE_IMG_UPLOAD) { (result) in switch result { case .success(let upload, _, _): upload.uploadProgress(closure: { (progress) in print("Upload Progress: \(progress.fractionCompleted)") }) upload.responseJSON { response in print(response.result.value) } case .failure(let encodingError): print(encodingError) } } 和我的服务器代码是这样在PHP中 […]

Swift Alamofire发送XML请求并接收XML响应

您好,我正在从目标C到Swift。 我试图发送XML请求,并收到XML响应。 我们如何能与Alamofire做到这一点。 似乎只能为JSON做? 我的终点:“ https://prdesb1.singpost.com/ma/GetItemTrackingDetails ” 我的示例请求正文(xml): <ItemTrackingDetailsRequest xmlns="http://singpost.com/paw/ns"> <ItemTrackingNumbers> <TrackingNumber>SMT0000000628</TrackingNumber> </ItemTrackingNumbers> </ItemTrackingDetailsRequest> 答案应该是 <ItemTrackingDetailsResponse xmlns="http://singpost.com/paw/ns" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <ItemsTrackingDetailList> <ItemTrackingDetail> <TrackingNumber>SMT0000000628</TrackingNumber> <TrackingNumberFound>true</TrackingNumberFound> <AlternativeTrackingNumber/> <TrackingNumberActive>true</TrackingNumberActive> <PostingDate/> <InsuredValue/> <InsuredSDR/> <Weight/> <ExpressInd/> <ItemCategory/> <Content/> <PreadviceDate/> <ReceptacleID/> <OriginalCountry>Singapore</OriginalCountry> <DestinationCountry>Singapore</DestinationCountry> <ItemType>Speedpost</ItemType> <DeliveryStatusDetails> <DeliveryStatusDetail> <StatusDescription>Recovered item from POPStation for service recovery</StatusDescription> <Location>SPEEDPOST SERVICE CENTRE</Location> <BeatNo/> <Date>2016-08-22T16:35:30</Date> <AceDate>20160822 163530</AceDate> </DeliveryStatusDetail> <DeliveryStatusDetail> <StatusDescription>Delivered […]

SerializationFailure在使用Alamofire发布数据时发生错误

我试图使用Alamofire保存一些文本数据和图像到服务器,但我得到以下错误: FAILURE:responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain = NSCocoaErrorDomain Code = 3840“Invalid value around character。”UserInfo = {NSDebugDescription =字符0周围的值无效。 我的代码: internal func postContent(forApi Name:String, image:UIImage?, withData payload:[String: String], success: ((_ response:[String: AnyObject])->Void)?, failure: ((Error)->Void)?) { //create Alamofire request //if everything was fine call success block with people array passed into it //if failure occurred, call failure block with error. if(isConnectedToNetwork()){ […]

字符981附近的非转义控制字符。parsingJSON时发生错误

错误域= NSCocoaErrorDomain代码= 3840“字符981周围的未转义的控制字符。 UserInfo = {NSDebugDescription =字符981周围的非转义控制字符。} 我在请求的回应中遇到了以上错误。 以下是代码行: Alamofire.request(.POST, urlStr, parameters: parameter, encoding: .JSON, headers: nil).validate().responseJSON { response in switch response.result { case .Success(let JSON): completionHandler(JSON as! NSDictionary) case.Failure(let Error): print(Error) } } 它在Postman中给出了JSON响应。 我在邮递员那里得到的回应是: { "orderdetails": { "status_code": "200", "status_message": "Order details", "billingandshipping": { "billing": { "firstname": "first", "lastname": "last", "email": "aa@bbb.com", "address": […]