如何使用带有基本身份验证的alamofire多部分表单数据上传图像? [英] How to upload an image using alamofire multipart form data with basic authentication?

查看:326
本文介绍了如何使用带有基本身份验证的alamofire多部分表单数据上传图像?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是编程和iOS开发的新手。我需要使用Alamofire多部分表单数据上传图像,但我还需要输入基本身份验证标头。



此线程



你可以帮忙解决我的问题吗?在此先感谢:)

解决方案

 使用:

Alamofire .upload(multipartFormData:{multipartFormData in
multipartFormData.append(data,withName:_ formname)
multipartFormData.append(fileURL,withName:photo)},
usingThreshold:UInt64。 init(),
to:URL,
method:.post,
headers:[Authorization:auth_token],
encodingCompletion:{encodingResult in
switch encodingResult {
case .success(let upload,_,_):
upload.responseJSON {
debugPrint(response)
}
case。失败(让encodingError):
print(encodingE rror)
}
})


I am new in programming and in iOS development. I need to upload an image using Alamofire multipart form data, but I also need to input basic authentication header.

in this thread Alamofire 4.0 Upload MultipartFormData Header, it seems similar to my problem, the code is like this to upload

Alamofire.upload(multipartFormData:{ multipartFormData in
         multipartFormData.append(unicornImageURL, withName: "unicorn")
         multipartFormData.append(rainbowImageURL, withName: "rainbow")},
       usingThreshold:UInt64.init(),
       to:"https://httpbin.org/post",
       method:.post, 
       headers:["Authorization": "auth_token"], 
       encodingCompletion: { encodingResult in
        switch encodingResult {
        case .success(let upload, _, _):
            upload.responseJSON { response in
                debugPrint(response)
            }
        case .failure(let encodingError):
            print(encodingError)
        }
    })

but I am confused how to put the basic authentication (i.e username & password) header. and I also confused where I should place my image data.

I find another thread that seems similar to my problem. here it is... How to upload MultipartFormData with authentication using Alamofire, the proposed solution is this code :

let username = "username"
let password = "password"

let credentialData = "\(username):\(password)".dataUsingEncoding(NSUTF8StringEncoding)!                  
let base64Credentials = credentialData.base64EncodedStringWithOptions([])
let headers = ["Authorization": base64Credentials]

Alamofire.upload(
    .POST,
    "https://rilbits.com/supersafe/photo/upload",
    headers: headers,
    multipartFormData: { multipartFormData in
        let data = "default".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
        multipartFormData.appendBodyPart(data: data, name: "_formname")
        multipartFormData.appendBodyPart(fileURL: fileURL, name: "photo")
    },
    encodingCompletion: { encodingResult in
        switch encodingResult {

        case .Success(let upload, _, _):
            upload.responseString { response in
                debugPrint(response)
            }

        case .Failure(let encodingError):
            print(encodingError)
        }
    }
)

but after fixing to the swift 4.1 it gives an error :

could you please help my problem? Thanks in advance :)

解决方案

Use :

Alamofire.upload(multipartFormData:{ multipartFormData in
            multipartFormData.append(data, withName: "_formname") 
            multipartFormData.append(fileURL, withName: "photo")},
                         usingThreshold:UInt64.init(),
                         to:"URL",
                         method:.post,
                         headers:["Authorization": "auth_token"],
                         encodingCompletion: { encodingResult in
                            switch encodingResult {
                            case .success(let upload, _, _):
                                upload.responseJSON { response in
                                    debugPrint(response)
                                }
                            case .failure(let encodingError):
                                print(encodingError)
                            }
        })

这篇关于如何使用带有基本身份验证的alamofire多部分表单数据上传图像?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆