問題タブ [java-http-client]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1552 参照

java - HTTP/2 over TLS を使用して HTTP リクエストを送信するにはどうすればよいですか? (Java 11 HttpClient)

HTTP 要求のいくつかの側面を変更できる Java アプリケーションでプロキシを作成しようとしています。

これを行うには、ポート 8080 で ServerSocket を開き、そのポートで Mozilla Firefox のプロキシを構成し、接続ごとに別のスレッドで ServerSocket の accept() メソッドを実行します。これまでのところ、すべて正常です。

ブラウザーから対応する Web サイトに要求を送信するには、Java 11 に含まれている HttpClient ライブラリを使用します。これは、そのライブラリを使用するコードの一部です。

注: IHttpRequest は、ソケットから収集されたすべての情報 (ターゲット ホスト、ヘッダー、存在する場合は本文など) を含む、私が作成したクラスです。

これまでのところ、HTTP Web サイトに向けられたすべてのリクエストを傍受することに成功しています。ただし、たとえば、HTTP / 2 プロトコルを実装し、TLS を使用するhttps://www.google.com/には問題があります。Java アプリケーションを実行して前の Google ページにアクセスすると、Web サイトが表示される代わりに、ブラウザーに次のように表示されます (ヘッダー間の空白は無視してください)。

HTTP/2 200 OK

:ステータス: 200

alt-svc: quic = ":443"; 馬 = 2592000; v = "46,43,39"

キャッシュ制御: プライベート

コンテンツエンコーディング: gzip

コンテンツの長さ: 46058

コンテンツ タイプ: テキスト/html; 文字セット = UTF-8

日付: 2019 年 9 月 3 日 (火) 09:47:34 GMT

有効期限: 2019 年 9 月 3 日 (火) 09:47:34 GMT

p3p: CP = "これは P3P ポリシーではありません! 詳しくは g.co/p3phelp をご覧ください。"

サーバー: gws

セット Cookie: 1P_JAR = 2019-09-03-09; 有効期限 = 2019 年 10 月 3 日木曜日 09:47:34 GMT; パス = /; ドメイン = .google.com; SameSite = none NID = 188 = XOJkffugf5G8rxNLov_iqqxo-Cq5RCvhwJPNu9tvtzLesZ4q8CE0IDVt9VgCEHZsw-AV0EYaaL8D4d_2Qwb6jXCcss7RydfV9PqQFemN_Ezz0kUjyseDDbJXfrHpmqPR6GIQCnR7bjukfasxg883K9fjnhAaqz6IpUYxoguZx-vazWc; 有効期限 = 水、2020 年 3 月 4 日 09:47:34 GMT; パス = /; ドメイン = .google.com; HttpOnly 同意 = WP.27dd1a; 有効期限 = 金曜日、2038 年 1 月 1 日 00:00:00 GMT; パス = /; ドメイン = .google.com

x-frame-options: SAMEORIGIN

x-xss-保護: 0

(↓↓本文↓↓)

‹����� ÿÔ½ézâȲ (ú¿Ÿ‚ ¢ örÁ²À または PªÚ ° çyÜÞ¾ © $ Æ.ÞåžG¸ßýwþ® »™ š ¶« »× ùöíê ¢ ¤T '' '' ™ 'ß¿ († l / Æj ¢ または õ ßñ7¡ “QOLªV ÞU ¢ üø> Tm' ûÄ´T [L ^] îd * I7Õ Ùê Rçšb ÷ EE i²š¡ / ÜP iÃé0cÉDWE! ËsCò I ™ ZªI_ ‰) ## ™ '* & gš: ¦½ÒŽê¸ oŒ ‚™» † 9 $ vFQmU¶5c´Rˆ (Š © ZÖï 1L§ Üì ¦ÚUMS5W² Û $ # K'¶êæí FOWWrniCÒS- ò + Ú¨ · Åòõ¶ „÷ ñɲá 1 • 'ÙÐ

<< バイト形式のより多くの情報 >>

私のコードに奇妙な点はありますか? HTTP/2 がフレーム内のヘッダーを圧縮することは知っていますが、HTTPClient が内部で圧縮していると想定していました...

さらに情報が必要な場合は、お知らせください:)

前もって感謝します。