gpt4 book ai didi

ios - 允许 URLRequest httpBody 中使用特殊字符

转载 作者:行者123 更新时间:2023-11-30 12:19:30 26 4
gpt4 key购买 nike

这是我向服务器发送请求的操作。

    let urlStr = "someurl"
var request = URLRequest(url: URL(string: urlStr)!)
request.addValue(accessToken!, forHTTPHeaderField: "accessToken")


let postString = self.makeRequestString(dict: paramDict)
request.httpMethod = "POST"
request.httpBody = postString.data(using: .utf8, allowLossyConversion: true)
let session = URLSession.shared

request.timeoutInterval = 60

let task = session.dataTask(with: request) { data, response, error in

}

这里是makeRequestString的方法说明

func makeRequestString(dict:Dictionary<String,AnyObject>) -> String {
let data = try? JSONSerialization.data(withJSONObject: dict, options: .prettyPrinted)
let str = String(data: data!, encoding: .utf8)
return "key=" + str!
}

我面临的问题是,如果我的字典参数中有一些特殊字符,例如 !@#$%^&() 那么服务器不接受请求并给出一些不想要的结果。

纠正我遗漏的代码的任何建议或指示。

编辑:

现在,如果我更改方法中的以下代码行,我会从服务器获得所需的响应 ma​​keRequestString

    let str = String(data: data!, encoding: .utf8)?.replacingOccurrences(of: "&", with: "%26")

最佳答案

尝试使用此编码:

request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)!

关于ios - 允许 URLRequest httpBody 中使用特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44965403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com