首页 > 解决方案 > Alamofire.download 通过邮寄方式下载,参数不起作用

问题描述

您好,我正在通过带有参数的帖子下载文件。但服务器无法接收发布参数。但是如果我用 url 参数做同样的事情。一切正常。Almofire.request 也可以通过带有参数的帖子正常工作。但只有 Almofire.download 通过带有参数的帖子不起作用。

为什么 Alamofire.download 不通过 post 方法发送参数?

var sourceStringURL : String = "\(tmp_url)download"
let destination: DownloadRequest.DownloadFileDestination =
{
    _, _ in
    let fileURL = URL(fileURLWithPath: destPath)

    return (fileURL, [.removePreviousFile, .createIntermediateDirectories])
}

Alamofire.download(sourceStringURL, method: .post, parameters: ["id": idStr, "var": varStr], encoding: JSONEncoding.default, headers: nil, to: destination)
    .downloadProgress
    {
        progress in

        var tmpPercent : Int = Int(progress.fractionCompleted*100 / 1.0)

    }
    .response
    {
        response in
        if let error = response.error
        {
            print(error)
        }
        else
        {
            //success
        }
    }

服务器使用 Android 中的 Retrofit 库正确接收发布请求。

标签: alamofire

解决方案


我刚刚发现如果我将 JSONEncoding.default 更改为 URLEncoding.default。它工作正常。


推荐阅读