Siesta iOS GET请求与URL参数

Siesta iOS GET请求与URL参数

问题描述:

有没有办法在Siesta中提供GET请求,同时提供参数,如http://example.com/api/list.json?myparam=1Siesta 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。