繁体   English   中英

快速将String转换为NSData时数据损坏

[英]Corrupted data when convert String to NSData in swift

我有一个请求,它在请求主体中采用字符串,字符串格式如下

{"DeviceId":"B7A71027-78B1-4E25-9AC3-350EEB981C58", "TokenId":"B7A71027-78B1-4E25-9AC3-350EEB981C58", "OsType":"ios", "Email":"a.a@a.com", "UserName":"Amira", "Password":"1111", "ProfileImage":""}

但是快速的请求主体仅接受NSData类型,因此我搜索并找到了以下三行将String转换为NSData

        let data = parameter.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)
        let convertedStr = NSString(data: data!, encoding: NSUTF8StringEncoding)
        let finalString = convertedStr!.dataUsingEncoding(NSUTF8StringEncoding)

现在的问题是,发送给服务器的最终字符串未格式化并且未被服务器接受,它看起来像以下内容

finalString: 
Optional(<7b224465 76696365 4964223a 22423741 37313032 372d3738 42312d34 4532352d 39414333 2d333530 45454239 38314335 38222c20 22546f6b 656e4964 223a2242 37413731 3032372d 37384231 2d344532 352d3941 43332d33 35304545 42393831 43353822 2c20224f 73547970 65223a22 696f7322 2c202245 6d61696c 223a2261 2e614061 2e636f6d 222c2022 55736572 4e616d65 223a2241 6d697261 222c2022 50617373 776f7264 223a2231 31313122 2c202250 726f6669 6c65496d 61676522 3a22227d>)

所以现在服务器给我错误,请问如何解决这个问题?

我通过添加解决了问题

request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM