2017-12-29 34 views
1

curl/wgetで正しいリダイレクトURLを取得するにはどうすればよいですか? %3Bにあなたが;(セミコロン)をエスケープする必要がありcurl/wgetはリダイレクト時にブラウザと同じURLを解決しません

ブラウザをカール/ wgetのを渡して、解決します

ターゲットURL以下のURL(commitを含む)にターゲットURLを上回っており、これが期待される結果です。しかし

、カールやwgetの両方treeが含まれており、これは正常な動作ではありません、次のURLにターゲットURLを解決します。

リダイレクトURLの服従はcommittree含めてであり、それはgitwebの問題はなく、カール/ wgetのかもしれません。 curl/wgetで正しいリダイレクトURLを取得するにはどうすればよいですか? User-Agentを変更することは無力です。何か案は? 次のように私のcurlコマンドは次のとおりです。

$ curl -v -L -o output.html \ 
https://www.codeaurora.org/gitweb/quic/la/?p=kernel/msm-3.18.git%3Ba=commit%3Bh=430f3805c82634a3cb969d83acc4fc4c0ee6af27 

答えて

1

は、私は問題はあなたがエンコードプロジェクト名の一部である/をURLする必要があることであることがわかりました。 ;%3Bでエンコードすると、私にとって問題が発生しました。

また、URLには;が含まれているため、これはコマンド区切り文字なので、引用する必要があります。クエリ文字列で

p=kernel/msm-3.18は、私は、次の2つのcURLコマンドの動作させることができましたp=kernel%2fmsm-3.18

する必要があります:

これはあるかもしれない
curl -v -L -o output.html \ 
'https://www.codeaurora.org/gitweb/quic/la/?p=kernel%2fmsm-3.18.git;a=commit;h=430f3805c82634a3cb969d83acc4fc4c0ee6af27' 

それとも単に、

curl -v -L -o output.html \ 
'https://www.codeaurora.org/gitweb/quic/la/?p=kernel/msm-3.18.git;a=commit;h=430f3805c82634a3cb969d83acc4fc4c0ee6af27' 

ソフトウェアが生のパラメータを読み取り、%3Bをデコードせず、クエリ文字列にセミコロンが必要であるためです。

希望に役立ちます!

+0

働いていただきありがとうございます。セミコロンは、URLパラメータではなくコマンドセパレータとして解析されます。 – forte916

関連する問題