使用空格进行GET查询

时间:2019-05-11 07:47:16

标签: ios swift moya

我正在用Swift 4.2编写一个 iOS应用。我正在使用Moya Networking

我必须使用下面的 GET 查询从服务器获取数据:

  

https://api.backendless.com/AABE5C4B-AA58-955C-FF16-27B64A185300/46FDFF59-CF95-B699-FFF5-83B681610700/data/quilt_detail?where=addedDate> 1555515000   AND quitID ='9FE17AA3-E182-6DFA-FF1D-52B33B2B8D00'并且   ownerId ='AC1CB90D-CF3E-7243-FF87-9E408D68E800'&props = sleepHours,添加日期,添加日期

我的代码:

var task: Task {
        switch self{
        case .getTrends(let quiltID, let addedDate, let ownerId):
            return .requestParameters(parameters: ["where":"addedDate > \(addedDate) AND quitID='\(quiltID)' AND ownerId ='\(ownerId)'", "props":"sleepHours,addedDay,addedDate"], encoding: URLEncoding.default)
        }
    }

但是发出它,在执行它时会在下面的 GET 查询中进行

  

https://api.backendless.com/AABE5C4B-AA58-955C-FF16-27B64A185300/46FDFF59-CF95-B699-FFF5-83B681610700/data/quilt_detail?props=sleepHours%2CaddedDay%2CaddedDate&where=addedDate%20%3E%201556955782%20AND%20quitID%3D%276264A540-84F3-4D09-FF8D-00D4C94E9D00%27%20AND%20ownerId%20%3D%27DB64B524-8973-9357-FF67-3C69B6CD1C00%27

     

代替:

     

添加日期> 1555515000和   quitID ='9FE17AA3-E182-6DFA-FF1D-52B33B2B8D00'并且   ownerId ='AC1CB90D-CF3E-7243-FF87-9E408D68E800'

     

它的制作:

     

addedDate%20%3E%20155695578​​2%20AND%20quitID%3D%276264A540-84F3-4D09-FF8D-00D4C94E9D00%27%20AND%20ownerId%20%3D%27DB64B524-8973-9357-FF67-3C69B6CD1C00%27

如何使用空格进行GET查询?

2 个答案:

答案 0 :(得分:0)

URL字符串从不包含空格Check Here

答案 1 :(得分:0)

您的查询包含。它们只是被百分比编码或也被称为 URL编码。这是一种在URL中包含字符的机制,否则这些字符将是非法的或与URL结构冲突。进一步了解Wikipedia's percent-encoding article

一个简单的示例是包含xdotool key ctrl+shift+E的GET参数值。您必须对其进行编码,否则它将启动一个新参数后的值。

接收请求的服务器将看到您发送的原始数据。您可以使用&在浏览器的控制台中进行验证:

decodeURIComponent

这将返回:

decodeURIComponent('addedDate%20%3E%201556955782%20AND%20quitID%3D%276264A540-84F3-4D09-FF8D-00D4C94E9D00%27%20AND%20ownerId%20%3D%27DB64B524-8973-9357-FF67-3C69B6CD1C00%27')