1

据我从 man curl 页面中可以看出, -D 选项应该为我提供服务器对我发送的请求的响应。当我尝试读取存储在我要连接的服务器上的文件时,我可以正确读取它:

curl -uUSERNAME:PASS SERVER-NAME/path-to-file > my_output

这是成功的,所以我可以使用我使用的凭据正确访问。现在我想创建一个预读验证步骤,首先读取对我的访问尝试的响应,如果收到 200 OK,请继续请求文件......所以我使用

curl -D -uUSERNAME:PASS SERVER-NAME > my_output

现在我得到一个 401 响应,我不明白:

<title>401 Authorization Required</title>

有什么建议吗?

4

1 回答 1

0

尝试这样做:

intvar=$(curl -s -w %{http_code} http://SERVER-NAME/path-to-file -o /dev/null)
case $intvar in
    4*|5*)
        echo >&2 "Fatal: HTTP $intvar code spotted."
        exit 1
    ;;
    2*|3*)
        echo "HTTP $intvar code spotted."
        # 2nd curl command
    ;;
esac

看 :

man curl | less +/^' *-w'
于 2013-03-25T20:56:07.990 回答