带有url参数的Siesta iOS GET请求

有没有办法在Siesta中提供GET请求,同时提供参数,例如http://example.com/api/list.json?myparam=1 ?

我试过了

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之类的字符串没有特殊含义; 它们直接进入生成的资源路径,必要时可以转义。

这是一个安全function,旨在防止用户提交的字符串流入URL的其他部分。

第二个示例中的Resource.request(_:urlEncoded:)方法用于在请求主体中传递参数(即使用POST或PUT),而不是查询字符串中的参数。

请注意,如果要绕过Siesta的URL组件隔离和转义function,可以始终使用Service.resource(absoluteURL :)自行构建URL。