带有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。