0

リクエストに認証ヘッダーを追加したいと考えています。Apache httpclient 4.0 の DefaultHttpClient を使用しています。

私はそれがこのように行われていることを発見しました:

URI uri = new URI("http://www.bla.bla/folder/");

String host = uri.getHost();
int port = uri.getPort();

httpClient.getCredentialsProvider().setCredentials(
        new AuthScope(host, port, AuthScope.ANY_SCHEME),
        new UsernamePasswordCredentials("myuser", "mypassword")
        );

これが実行され、デバッガーを使用しても、リクエストの実行時に httpClient のいくつかの資格情報変数が設定されていることがわかります。しかし、Charles で Web トラフィックを検査しましたが、認証ヘッダーはありません。

変数の内容:

ホスト: www.bla.bla

ポート: -1

ところで。次のように、Charles をプロキシとしてリクエストのヘッダーを表示できるようにしました。

HttpHost proxy = new HttpHost("127.0.0.1", 8888, "http");
httpParameters.setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);

ヘッダーを変更するべきではないと思います.webproxyには意味がありません...とにかく、プロキシを無効にすると機能しません(ただし、ヘッダーの内容は表示されませんが、同じだと思います理由)。

また、Softhinker.com の投稿(Android で HTTP 基本認証ヘッダーを送信するにはどうすればよいですか?) で説明されているような要求インターセプターを使用してみました。

そして、認証ヘッダーなしで、まったく同じ要求を受け取ります。

私は何を間違っていますか?

前もって感謝します。

4

1 に答える 1

0

リクエストに「手動で」ヘッダーを設定して動作させました。

request.setHeader(new BasicHeader("Authorization", authstring));
于 2012-06-19T12:26:09.650 に答える