ios - 使用 swift 语言在 NSMutableURLRequest URL 中导致错误的日期字符串
问题描述
我在转换为字符串后传递日期但导致错误
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 编码——我们有URLComponents
这个。
例如:
let SERVICE_URL = "https://example.com/service/"
let url = SERVICE_URL + "GetHistoryDataByTerminalNo"
var components = URLComponents(string: url)!
components.queryItems = [
URLQueryItem(name: "TerminalNo", value: VehicleList.SelectedTerminal.selectedTerminalId),
URLQueryItem(name: "fromDate", value: fromDateText),
URLQueryItem(name: "toDate", value: toDateText)
]
let request = URLRequest(url: components.url!, timeoutInterval: 30)
(您可能需要更多的错误检查)
另外,正如@Joakim 提到的,如果可以避免使用 NS... 类型,请不要使用它们。
推荐阅读
- buildbot - Buildbot:如何要求所有用户进行身份验证?
- python - 等待异步功能完成
- rollupjs - 使用汇总插件别名进行 Preact
- python - 使用 SMTPLib Python 时获取未经授权的发件人地址
- javascript - 如何基于 JSON 生成动态 html?
- spring-boot - 如何对发出外部 WebClient 请求的类进行单元测试?
- string - Xcode 字符串搜索算法
- vba - 如何根据用户类型用相似的记录重新填充组合框
- node.js - 如何使用护照本地猫鼬更改用户名密码
- r - Ops.factor(host_neighbourhood, neighbourhood) 中的错误:因子的水平集不同