Siesta iOS GET请求与URL参数
问题描述:
有没有办法在Siesta中提供GET请求,同时提供参数,如http://example.com/api/list.json?myparam=1?Siesta iOS GET请求与URL参数
我试着用
myAPI.resource("list.json?myparam=1")
但问号被逃脱。
然后我试图与
myAPI.resource("list.json").request(.GET, urlEncoded:["myparam": "1"])
但它总是失败,“网络连接已丢失。”,但所有其他请求成功,因此,该消息是错误的。
答
您正在寻找withParam
:
myAPI.resource("list.json").withParam("myparam", "1")
的Service.resource(_:)
方法你想在你的第一个例子中使用的具体解释避免特殊字符作为PARAMS(或任何东西,除了一个路径)。从文档:
path参数仅附加到baseURL的路径,并且永远不会解释为URL。诸如..,//,?和https之类的字符串没有特殊含义;他们会直接进入结果资源的路径,必要时会转义。
这是一项安全功能,用于防止用户提交的字符串渗入URL的其他部分。
第二个示例中的Resource.request(_:urlEncoded:)
方法用于在请求正文(即使用POST或PUT)中传递参数,而不是查询字符串中的参数。
请注意,如果您想绕过Siesta的URL组件隔离和转义功能,您总是可以使用Service.resource(absoluteURL:)构建一个URL。