我试图从ESA访问API。详情here 使用curl时,
curl -svgu <user>:<password> "https://scihub.esa.int/dhus/odata/v1/Products?$filter=year(IngestionDate) eq 2015 and month(IngestionDate) eq 10 and day(IngestionDate) eq 10"
回复时间错误(2014年)
在chrome上使用相同的链接产生预期的结果(传递日期的文件)
https://scihub.esa.int/dhus/odata/v1/Products?$filter=year(IngestionDate) eq 2015 and month(IngestionDate) eq 10 and day(IngestionDate) eq 10
我尝试删除空格并使用
`"https://scihub.esa.int/dhus/odata/v1/Products?$filter=year(IngestionDate)%20eq%202015%20and%20month(IngestionDate)%20eq%2010%20and%20day(IngestionDate)%20eq%2010"`
on curl。
有任何建议或想法吗?您可以使用这些链接进行尝试。
编辑: 根据{{3}}的建议, curl -G -gu:&#34; Pafjo&#34; --data-urlencode&#39; $ filter = year(IngestionDate)eq&#39;&#34; $ YEAR和month(IngestionDate)eq $ MONTH和day(IngestionDate)eq $ DAY&#34;这就是答案
答案 0 :(得分:1)
Curl不会对您的网址进行网址编码,因此您需要告诉它哪个部分应该进行网址编码。
试试这个,看看你是否得到正确答案:
curl -G -svgu <user>:<password> "https://scihub.esa.int/dhus/odata/v1/Products" --data-urlencode '$filter=year(IngestionDate) eq 2015 and month(IngestionDate) eq 10 and day(IngestionDate) eq 10'
你的第二个curl命令失败的原因是你在双引号内有$ filter。因此,当您执行请求时,shell将使用值替换您的变量。这可以通过使用单引号或转义美元符号来解决。
答案 1 :(得分:0)