等效的 Swift NSURLSession 或 Alamofire Curl post



我有这个卷曲帖子,可以正常工作,但是对于我的生活,我无法让它与NSURLSession或Alamofire一起使用。返回精细的卷曲是:

curl https://api.truevault.com/v1/vaults/XXXXXX-XXXX-XXXX-XXXX-XXXXXXXX/blobs 
-X POST 
-u yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyy: 
--form "file=@foo.pdf" 
-H "Content-Type:multipart/form-data"

无论 curl 或 NSURL 的变体是什么,我都会收到 401 错误,但它使用 curl 成功完成!请帮忙!谢谢!

当前阿拉莫火尝试

        let headers = ["Authorization": Config.trueVaultKey, "Content-Type": "multipart/form-data"]
        Alamofire.upload(
        Alamofire.Method.POST,
        url!,
        headers: headers,
        multipartFormData: { multipartFormData in
            multipartFormData.appendBodyPart(
                data: dat!,
                name: "file",
                fileName: "license.png",
                mimeType: "image/png"
            )
        },
        encodingCompletion: { encodingResult in
            switch encodingResult {
            case .Success(let upload, _, _):
                upload.responseString { response in
                    //JSON = response.result.value! as String
                    debugPrint(response)
                    print("nnnREQUEST HEADER: (response.request!.allHTTPHeaderFields!)")
                    print("nnnREQUEST BODY: (response.request!.HTTPBody)")
                    print("nnnREQUEST BODY STREAM: (response.request!.HTTPBodyStream)")
                }
            case .Failure(let encodingError):
                print(encodingError)
            }
    })

尝试像这样构建您的 URL:

 let userAuth = "username:password" // credential
 let url = "https://(userAuth)@api.truevault.com/v1/vaults/XXXXXX-XXXX-XXXX-XXXX-XXXXXXXX/blobs" // notice the at(@) sign

不要设置标题,它们将自动设置。

最新更新