【发布时间】:2016-04-23 04:44:32
【问题描述】:
编辑
https://www.someurl.com/search?&access_token=1,84,848473938;848483,83&_json={"key1":"value1","key2":"value2"}
当声明一个带有 JSON 字符串的 URL 时,我显然需要使用大括号 _json={ } 和 qoutes \"key1\":\"value1\"
NSURL(string: String),然而,如果这些字符中的任何一个包含在字符串中,就会神奇地变成nil。
所以在这里正确回答:NSURL is returning nil for a valid URL,我尝试使用:
let url = NSURL(string: url.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!)
但我认为它已被弃用,因为它是在 Swift 2 发布之前,我收到错误:cannot convert value of Type NSCharacterSet to expected argument type NSStringEncoding (aka UInt)
所以我尝试使用
let url = NSURL(string: url.stringByAddingPercentEncodingWithAllowedCharacters(NSUTF8StringEncoding)!)!
虽然这确实允许 NSURL 有一个值而不是 nil,但它没有返回预期的结果,所以还是有问题。
我知道格式是正确的,因为如果我在浏览器中手动键入 URL 字符串,我会得到预期的结果。如果我从 Xcode 复制/粘贴编码版本,它会给我错误的结果,就像 Swift 在编码时一样,如上所示。
任何见解将不胜感激。
【问题讨论】:
-
您要使用的具体字符串是什么?
-
我是否理解您试图将 JSON 对象放入 URL 中?
-
是的,我将一个 JSON 对象放入我的字符串中。我使用了'stringByAddingPerecent...'(我忘记了确切的调用名称),但这并没有改变所有的对象。它会更改大括号和引号,但不会更改逗号。我包含了一个手动更改字符的功能,并成功收到了我想要的新响应。我已经编辑了我的 OP 以包含有问题的强者。
-
&_json={"key1":"value1","key2":"value2"}比?key1=value1&key2=value2有什么优势?