从终端GET工作 但httr::GET不

我试图从httr::GET的服务器下载 rasters,我们曾经有这个工作,但对服务器进行了一些更改,现在它不起作用。

我试图从httr::GET的服务器下载 rasters,我们曾经有这个工作,但对服务器进行了一些更改,现在它不起作用。

通过浏览器或通过终端(ubuntu 16.04)中的 GET 使用 URL 工作正常,并返回一个工作 tif raster。但是使用来自httr::GET的相同 url 不起作用,并给出Status: 400

我唯一的猜测是它与数据的编码有关。但我真的不确定。

file <- paste0(tempdir(), '/file.tif')
r <- 
  httr::GET('https://map.ox.ac.uk/geoserver/Explorer/ows?service=WCS&version=2.0.1&request=GetCoverage&format=image/geotiff&coverageid=2015_Nature_Africa_PR&SUBSET=Long(-3,50.483779907)&SUBSET=Lat(-25.6089496609999,-11.9454326629999)&SUBSET=time(\"2015-01-01T00:00:00.000Z\")',
           httr::write_disk(file, overwrite = TRUE))
ras <- raster::raster(file)
# I'm now totally confused about when and where quotes are escaped, so just to make sure...
r <- 
  httr::GET('https://map.ox.ac.uk/geoserver/Explorer/ows?service=WCS&version=2.0.1&request=GetCoverage&format=image/geotiff&coverageid=2015_Nature_Africa_PR&SUBSET=Long(-3,50.483779907)&SUBSET=Lat(-25.6089496609999,-11.9454326629999)&SUBSET=time("2015-01-01T00:00:00.000Z")',
            httr::write_disk(file, overwrite = TRUE))
ras <- raster::raster(file)
# But just putting the url in the browser works fine.
# https://map.ox.ac.uk/geoserver/Explorer/ows?service=WCS&version=2.0.1&request=GetCoverage&format=image/geotiff&coverageid=2015_Nature_Africa_PR&SUBSET=Long(-3,50.483779907)&SUBSET=Lat(-25.6089496609999,-11.9454326629999)&SUBSET=time("2015-01-01T00:00:00.000Z")
# eg 
# rr <- raster::raster('~/Desktop/2015_Nature_Africa_PR3.tif')
# And using the URL with GET in the terminal works
# GET "https://map.ox.ac.uk/geoserver/Explorer/ows?service=WCS&version=2.0.1&request=GetCoverage&format=image/geotiff&coverageid=2015_Nature_Africa_PR&SUBSET=Long(-3,50.483779907)&SUBSET=Lat(-25.6089496609999,-11.9454326629999)&SUBSET=time(\"2015-01-01T00:00:00.000Z\")" > ~/Desktop/2015_Nature_Africa_PR4.tif
# eg
# rr <- raster::raster('~/Desktop/2015_Nature_Africa_PR4.tif')
5

包装在URLEncode为我工作:

library(httr)
library(raster)
file <- paste0(tempdir(), '/file.tif')
url1 <- 'https://map.ox.ac.uk/geoserver/Explorer/ows?service=WCS&version=2.0.1&request=GetCoverage&format=image/geotiff&coverageid=2015_Nature_Africa_PR&SUBSET=Long(-3,50.483779907)&SUBSET=Lat(-25.6089496609999,-11.9454326629999)&SUBSET=time("2015-01-01T00:00:00.000Z")'
r   <- GET(URLencode(url1), write_disk(file, overwrite = TRUE))
ras <- raster(file)

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(638)
正则表达式:数字重复7或 9次(9times 7)
上一篇
数据库连接在jupiter笔记本中工作 但不是气流
下一篇

相关推荐

  • gdb 远程调试:使用GDB远程调试排查程序问题

    示例示例gdb 远程调试是指在远程服务器上运行的应用程序,可以通过 gdb 进行调试。gdb 远程调试的基本步骤如下:…

    2023-06-16 07:32:33
    0 51 93
  • mongodb数据库迁移:如何使用MongoDB进行数据库迁移

    MongoDB数据库迁移是指将MongoDB数据库从一个服务器迁移到另一个服务器的过程。迁移可以是在同一环境中,也可以是在不同环境中。…

    2024-02-12 04:10:56
    0 44 74
  • golden数据库:利用Golden数据库提高企业管理效率

    Golden数据库是一种支持实时分析的高性能数据库,它可以提供快速、可靠和可扩展的数据存储和处理能力。Golden数据库使用内存中的数据结构来存储数据,并且支持多种查询语言,如SQL、NoSQL和MapReduce。…

    2023-07-03 05:47:37
    0 37 43
  • gdb调试详解如何利用gdb进行程序调试

    示例示例GDB调试是一种用于查找程序中的错误和问题的强大工具。它可以帮助开发人员更好地理解代码,并且可以让他们更快地修复程序中的错误。GDB调试的基本步骤如下:…

    2023-02-25 10:25:33
    0 39 90
  • gitlab 数据库迁移一步一步指南

    Gitlab 数据库迁移是将 Gitlab 的数据库从一个服务器迁移到另一个服务器的过程。迁移过程包括备份原始数据库,将备份文件传输到新服务器,在新服务器上恢复备份文件,并修改 Gitlab 配置文件来使用新的数据库。下面是一个示例代码,用于在本地服务器上备份 Gitlab 数据库:…

    2023-06-07 08:48:26
    0 32 82
  • go操作数据库:如何使用Go语言操作数据库

    示例示例Go操作数据库的方式有很多种,比如使用原生的sql包,也可以使用ORM框架,如Gorm、Xorm等。使用原生的sql包…

    2023-05-18 10:15:44
    0 93 55
  • mongodb验证数据库:如何使用MongoDB验证数据库

    示例示例MongoDB验证数据库主要是检查数据库中的数据完整性,以确保数据的正确性。MongoDB的验证可以通过db)方法来实现,下面是一个代码示例:…

    2023-12-27 09:42:45
    0 50 79
  • gaussdb数据库下载强大的数据库管理系统,让你轻松管理大型数据库

    GaussDB是一款基于MySQL的关系型数据库,由华为技术有限公司开发,可以支持大规模的数据处理,提供高性能、高可用的数据库服务。…

    2023-03-24 07:37:24
    0 20 73

发表评论

登录 后才能评论

评论列表(17条)