转换为String后我正在传递日期,但导致错误
unexpectedly found nil while unwrapping a value
这是请求的代码let url = SERVICE_URL + "GetHistoryDataByTerminalNo?TerminalNo=\(VehicleList.SelectedTerminal.selectedTerminalId)&fromDate=\(fromDateText)&toDate=\(endDateText)"
let request = NSMutableURLRequest(url: NSURL(string: url)! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 30.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers
更新我得到这个网址
http://labs2.unitedtracker.com/api/Trackers/GetHistoryDataByTerminalNo?TerminalNo=351535058776063&fromDate=2020-08-23 14:15:52.000&toDate = 2020-08-23 16:15:52.000
最佳答案
您不能只将带有空格的字符串放入URL中,而必须先对其进行URL编码。
首先,添加extension
进行URL编码:
extension String {
public var urlEncoded: String {
var allowedCharacters = CharacterSet.urlQueryAllowed
allowedCharacters.remove(charactersIn: "!*'();:@&=+$,/?%#[]")
return addingPercentEncoding(withAllowedCharacters: allowedCharacters) ?? ""
}
}
其次,对参数值进行编码:let url = SERVICE_URL + "GetHistoryDataByTerminalNo?TerminalNo=\(VehicleList.SelectedTerminal.selectedTerminalId.urlEncoded)&fromDate=\(fromDateText.urlEncoded)&toDate=\(endDateText.urlEncoded)"
或者,您可以使用URLComponents和URLQueryItem生成您的URL。
关于ios - 使用快速语言在NSMutableURLRequest URL中引起日期字符串错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63546168/