使用Alamofire将protobuf消息发布到请求正文中?

时间:2016-06-08 18:15:46

标签: swift protocol-buffers alamofire

我有一个序列化的protobuf消息(以[UInt8]的形式),我需要在HTTP POST请求的正文中发送。我使用的是Alamofire 3.4.0,我的代码如下:

// serializedMessage is my serialized protobuf message in the form of [UInt8]

let headers = ["Content-Type" : "application/x-protobuf"]

Alamofire.request(.POST, myURL, parameters: [:], encoding: .Custom({
    (convertible, params) in
    let mutableRequest = convertible.URLRequest.copy() as! NSMutableURLRequest
    mutableRequest.HTTPBody = NSData(bytes: serializedMessage)
    return (mutableRequest, nil)
}), headers: headers)
.validate()
.responseString { response in
    print("Response: \(response)")
}

我工作的API文档只是说"将(二进制)序列化的protobuf消息写入HTTP POST请求的主体。"目前,服务器给我HTTP / 400(错误的请求),但我不知道为什么。我还是比较新的iOS / Swift / Alamofire,但我已成功使用Alamofire进行其他GET / POST请求。然而,这是我第一次尝试将原始二进制文件写入请求正文中,所以我可能做错了。我错过了一些明显的东西吗?

0 个答案:

没有答案