【问题标题】:Handle spaces in url using httr package使用 httr 包处理 url 中的空格
【发布时间】:2021-01-25 12:08:37
【问题描述】:

我想知道如何让httr 包中的GET 自动处理其中有空格的参数值。

当我将其粘贴到浏览器中时:

http://quickstats.nass.usda.gov/api/api_GET/?key=MYAPIKEY&commodity_desc=AG LAND&short_desc=AG LAND, IRRIGATED - ACRES&short_desc=AG LAND - ACRES&year__GE=2015&state_alpha=NC

空格被替换为 %20 并且数据是从站点获取的。这是浏览器返回的url:

https://quickstats.nass.usda.gov/api/api_GET/?key=MYAPIKEY&commodity_desc=AG%20LAND&short_desc=AG%20LAND,%20IRRIGATED%20-%20ACRES&short_desc=AG%20LAND%20-%20ACRES&year__GE=2015&state_alpha=NC

对象my_commodity_desc 中的“AG LAND”和my_short_desc1 中的“AG LAND, IRRIGATED - ACRES”等参数中有空格,我认为这就是问题所在。

这是我正在运行以从 http://quickstats.nass.usda.gov 获取数据的代码:

# url
nass_url <- "http://quickstats.nass.usda.gov"
# commodity description of interest
my_commodity_desc <- "AG LAND"

# short description of interest (i.e., 'data item' on NASS Quick Stats website)
my_short_desc1 <- "AG LAND, IRRIGATED - ACRES"
my_short_desc2 <- "AG LAND - ACRES"

# query start year
my_year <- "2015"

# state of interest
my_state <- "NC"

# final path string
path_nc_irrig_land <- paste0("api/api_GET/?key=", NASS_API_KEY,
                             "&commodity_desc=", my_commodity_desc,
                             "&short_desc=", my_short_desc1,
                             "&short_desc=", my_short_desc2,
                             "&year__GE=", my_year,
                             "&state_alpha=", my_state)
# Run the query
raw_result_nc_irrig_land <- GET(url = nass_url, path = path_nc_irrig_land)

【问题讨论】:

    标签: r json api http url


    【解决方案1】:

    您可以使用基本 R 的 URLencode(来自包 utils),它的作用与您的浏览器大致相同:

    URLencode(path_nc_irrig_land)
    #> [1] "api/api_GET/?key=myAPIKey&commodity_desc=AG%20LAND&short_desc=AG%20LAND,%20IRRIGATED%20-%20ACRES&short_desc=AG%20LAND%20-%20ACRES&year__GE=2015&state_alpha=NC"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-21
      • 2013-03-01
      • 2018-01-13
      • 2011-08-26
      相关资源
      最近更新 更多