R语言httr包GET请求因时间格式报错问题求助
问题解决方法
你遇到的问题根源是URL里的日期参数包含空格——浏览器会自动对空格做URL编码(转成%20),但httr::GET不会自动处理这类未编码的特殊字符,所以触发了格式错误提示。
两种可行的解决办法:
1. 手动编码URL中的空格
把start_date=2022-06-01 00:00:00和end_date=2022-09-27 00:00:00里的空格替换成%20,修改后的完整URL如下:
https://api.ecowitt.net/api/v3/device/history?application_key=XXXX&api_key=-YYY&mac=ZZZ&start_date=2022-06-01%2000:00:00&end_date=2022-09-27%2000:00:00&cycle_type=30min&call_back=outdoor,indoor.humidity
再用这个URL执行httr::GET就能正常请求。
2. 用httr::GET的query参数构建请求(更推荐)
不要手动拼接完整URL,把参数放进query列表里,httr会自动帮你处理URL编码,代码示例:
library(httr) response <- GET( url = "https://api.ecowitt.net/api/v3/device/history", query = list( application_key = "XXXX", api_key = "-YYY", mac = "ZZZ", start_date = "2022-06-01 00:00:00", end_date = "2022-09-27 00:00:00", cycle_type = "30min", call_back = "outdoor,indoor.humidity" ) ) # 查看返回内容 content(response, "text")
这种方式能避免手动拼接URL时的编码失误,更稳妥。
内容的提问来源于stack exchange,提问作者JerryN
相关产品推荐
相关产品推荐

