如何将原始 NSData 以及一些 NSStrings 发布到我的服务器?
Posted
技术标签:
【中文标题】如何将原始 NSData 以及一些 NSStrings 发布到我的服务器?【英文标题】:How do I POST raw NSData as well as some NSStrings to my server? 【发布时间】:2018-08-21 19:53:11 【问题描述】:我有一大块 NSData 想发送到我的服务器,但我也想发送一个字符串字典,其中包含映射到字符串键的字符串键。
如何在同一个请求中同时发布两者?
几乎所有指南都显示将其包装在 NSDictionary 中,然后使用 NSJSONSerialization 将其转换为 NSData 然后发布,但我不能将 NSData 和 NSStrings 放在同一个 NSDictionary 中,它只会崩溃,所以我假设我必须将它分开,但那看起来怎么样?
基本上我如何将 JSON 序列化为 NSData,然后还有一个单独的 NSData blob?
【问题讨论】:
可以先将 NSData 转换为 base64 String 再添加到字典中。然后在服务器 api 端点,您需要将该 base64 字符串转换回数据。 【参考方案1】:let body = NSMutableDictionary()
body.setValue("myString" forKey: "stringType")
body.setValue(data?.base64EncodedString(options: .lineLength64Characters) forKey: "dataType")
通过这种方式,您可以在字典中同时拥有数据和字符串。 这里 'data?.base64EncodedString(options: .lineLength64Characters)' 返回一个带有 base64 编码的 string。所以你的字典只包含字符串,在服务器端你必须将它转换回数据。
希望它能解决你的问题
【讨论】:
以上是关于如何将原始 NSData 以及一些 NSStrings 发布到我的服务器?的主要内容,如果未能解决你的问题,请参考以下文章
我将一些数据发送到 web 服务,它返回一些 JSON 作为 NSData。如何转换为字典?(iOS 4.3)
IO 直接播放来自 UDP 流 (NSData) 的原始音频