「Java 11 and 12 - New Features」を読む会 第2回 に参加
昼から参加。拙い英語で朗読しました。
7 The HTTP Client API
- java9,10,11で大きく改善
- 非同期・ノンブロッキング系の改善+HTTP/2の実装
- java9までのHttpURLConnectionは同期・ブロッキング。使い物にならなかった。
- Http/2規格化以前にGopherというプロトコルがかつてあった。
- JavaのHttpClientの競合はApache HttpClient,Eclipse Nettyなど
- HTTP Clientの認証まわりが難しい。
- プロパティの設定だけではなく、設定ごとに独自にコードを書く必要がある?
- jjagのセッションでhtml clientの発表があったらしい。
HttpRequest
- POSTメソッド
- 全て大文字のメソッドはjavaだと初めてではないのか?
HttpRequest request = HttpRequest.newBuilder() .uri(new URI("http://www.eJavaGuru.com/")) .timeout(Duration.ofSeconds(240)) .POST(HttpRequest.BodyProcessor .fromString("This is sample data")) .build();
- Java SEからxmlが消えた?
jaxb?が消えただけ。
- https://docs.oracle.com/javase/jp/8/docs/api/javax/xml/bind/JAXB.html
- java11で削除?
- module info javaに書けば使える。消されたわけではない。(java.baseのdefaultから外れただけ)
- https://stackoverflow.com/questions/54632086/java-11-implementation-of-jaxb-api-has-not-been-found-on-module-path-or-classpa
reactive streamの話を入れて欲しかった。
As stated in the previous example, BodyHandlers.ofFile() creates an implementation of BodyHandler, which creates and subscribes to BodySubscriber. BodySubscriber is a Reactive Stream subscriber that receives the response body from the server with non- blocking back pressure.
- BodySubscriberというものを使えばreactive streamが使えるという趣旨の記述が何度も出てくるが、reactive streamは実際どんなコードになるか?どんな動きをするか?という解説は出てこなかった。
- reactive steream関連の話題はJava読書会で過去に読んだ関数型プログラミング?リアクティブプログラミング?の本が共通のコンテキストとしてあるようだ。(私は未参加)
今回は7章The HTTP Client APIを全て読んだ。
次回はchapter 8, ZGCから