今天我被一个问题所困扰。
我试图将订阅收据发送到服务器以使用Apple服务器进行收据验证。 Web服务需要将包含收据编码的一些参数发送到POST主体中的base64字符串
在经过大量试验后我们发现了问题,基本64中的编码收据似乎包含由URL请求中的HTTP请求序列化器再次编码的字符。
根据我的理解,Web服务的行为只是将收据打包成带有密码的JSON并将其发送到Apple服务器。
我们能从Apple获得的唯一答案是21002状态
我已经在堆栈上阅读了很多问题(here,here,here关于这个问题,一个给了我解决方案,在服务器端只需用“+”替换“”。<登记/>
现在它可以工作,但是我觉得使用它感觉不舒服,有没有办法说AFnetworking不对url编码一些参数?或者以正确的方式重新编码?
答案 0 :(得分:0)
使用AFNetworking 2.5.4我设法通过设置请求序列化程序的内容类型来正确发送收据。
var manager = AFHTTPRequestOperationManager()
manager.requestSerializer = AFHTTPRequestSerializer()
manager.requestSerializer.setValue("application/json", forHTTPHeaderField: "Content-Type")