JavaのURLConnectionとC#のWebRequest/WebResponseの違いC#でHTTPクライアントを久々に書いて数分間何が起きたか混乱したのでメモ。原因は、Streamの仕様の差にある。Javaで簡単にHTTPクライアントを作るにはURLConnectionを使う。e);}というように、長さ0の読み込みを正常処理に織り込む必要がある。-InputStream#read(byte[])この仕様が念頭にあったので、つい次のように書いて無限ループにはまった。-Stream.Readというわけで、EOFは0を返す。こんなところに非同期IOに対する考え方の違いが影響していておもしろい。