如何使用Alamofire发送带有gziped内容的HTTP POST请求?

时间:2017-03-28 06:41:40

标签: ios http post gzip alamofire

我正在使用iOS应用程序向服务器发布大约2000个对象数组。我正在做一个实验。我用了     PATCH https://{instance}/DefaultCollection/{project}/_apis/build/builds/{buildId}?api-version={version}

{ "status":"cancelling" } 发布1个对象。但是现在我发布了2000或更多,我正在考虑使用gzip来压缩对象数组,然后上传以检查网络效率。但我不知道如何使用Alamofire做到这一点。 我发现了link 但是Alamofire现在没有最新版本的enum ParameterEncoding。其他一些链接建议使用Alamofire.upload。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码使用Alamofire SDK传递POST请求的参数:

 let param: [String: AnyObject] = [
        "OwnerEmail": document.fromOwner!.email as AnyObject,
        "UTCTimeStamp": document.utcTimeStamp as AnyObject,
        "Latitude": document.latitude as AnyObject,
        "Longitude": document.longitude as AnyObject,
        ...
    ]
    var request = URLRequest(url: URL(string: url)!)
    request.httpMethod = "POST"
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    do{
        let data = try JSONSerialization.data(withJSONObject: param, options: .prettyPrinted)
        request.httpBody = data

        Alamofire.request(request).responseJSON { (response) in


            print(response)

        }

    } catch
        {
       }

这将有助于您解决上述问题。