混乱を避けるために、質問を2つの部分にまとめます。
まず、「ブラウザでBASIC認証を使用して認証済みのHTTPリクエストを作成するにはどうすればよいですか?」。
ブラウザで、プロンプトが表示されるのを待つか、次の形式に従ってURLを編集することにより、最初にhttp基本認証を実行できます。 http://myusername:mypassword@somesite.com
注意:コマンドラインとcurlがインストールされている場合、質問で言及されているcurlコマンドは完全に問題ありません。;)
参照:
また、CURLマニュアルページhttps://curl.haxx.se/docs/manual.htmlによると
HTTP
Curl also supports user and password in HTTP URLs, thus you can pick a file
like:
curl http://name:passwd@machine.domain/full/path/to/file
or specify user and password separately like in
curl -u name:passwd http://machine.domain/full/path/to/file
HTTP offers many different methods of authentication and curl supports
several: Basic, Digest, NTLM and Negotiate (SPNEGO). Without telling which
method to use, curl defaults to Basic. You can also ask curl to pick the
most secure ones out of the ones that the server accepts for the given URL,
by using --anyauth.
NOTE! According to the URL specification, HTTP URLs can not contain a user
and password, so that style will not work when using curl via a proxy, even
though curl allows it at other times. When using a proxy, you _must_ use
the -u style for user and password.
2番目の本当の質問は、「しかし、somesite.comでは、認証プロンプトがまったく表示されず、「認証されていません」というページだけが表示されます。一部のサイトでは、基本認証ワークフローが正しく実装されていなかったか、何かありますか?他に私はする必要がありますか?」
curlのドキュメントによると、この-u
オプションは多くの認証方法をサポートしており、Basicがデフォルトです。