Curl:301 Moved Permanently

a0zr77ik  于 4个月前  发布在  其他
关注(0)|答案(1)|浏览(39)

我试图写一个脚本来下载一个文件使用curl命令行。
根据previous post,我应该能够使用-L标志跟踪301。下面是我在Ubuntu 22.04.1系统上看到的:

$ curl -s -I "https://dicom.nema.org/medical/dicom/2023c" | head -1
HTTP/1.1 301 Moved Permanently

字符串
所以让我们给予一个尝试:

$ curl -s -L "https://dicom.nema.org/medical/dicom/2023c/source/docbook/part15/part15.xml" | head -5 | tail -1
<title>404 - File or directory not found.</title>


然而,从我的谷歌Chrome链接https://dicom.nema.org/medical/dicom/2023c重定向到https://dicom.nema.org/medical/dicom/currenthint)。
让我们给予一个尝试:

$ curl -s -O "https://dicom.nema.org/medical/dicom/current/source/docbook/part15/part15.xml"


给出预期结果:

$ head -4 part15.xml | tail -1
  <subtitle>DICOM PS3.15 2023c - Security and System Management Profiles</subtitle>


我在这里错过了什么,有一个工作脚本下载任何版本:

$ VERSION=2023c curl "https://dicom.nema.org/medical/dicom/${VERSION}/source/docbook/part15/part15.xml"


供参考:

$ curl --version
curl 7.81.0 (x86_64-pc-linux-gnu) libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.5.13
Release-Date: 2022-01-05
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets zstd

5ssjco0h

5ssjco0h1#

如果你在使用-L选项时尝试相同的URL https://dicom.nema.org/medical/dicom/2023b,你会看到curl会像浏览器一样跟随重定向。当你在浏览器中使用URL https://dicom.nema.org/medical/dicom/current/source/docbook/part15/part15.xml时,你也会看到与使用curl相同的行为:你会得到一个HTTP 404。

相关问题