带有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:没有特殊含义;它们直接进入结果资源的路径,必要时进行转义。

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

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

请注意,如果您想绕过Siesta的URL组件隔离和转义功能,您可以始终使用Service.resources(absoluteURL:)自己构造URL。

相关内容

  • 没有找到相关文章

最新更新