1

man curlページからわかる限り、-Dオプションを使用すると、送信するリクエストに対するサーバーの応答が提供されます。接続しているサーバーに保存されている必要なファイルを読み込もうとすると、正しく読み取ることができます。

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

これは成功しているので、使用するクレデンシャルで適切にアクセスできます。ここで、先読み検証ステップを作成します。これは、最初にアクセス試行に対する応答を読み取ります。200OKを受信した場合は、ファイルの要求に進みます...したがって、

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 に答える