1

たとえば、次のJavaコードがあります。

URL u = new URL("http://google.com");  
URLConnection c = u.openConnection();  
InputStream s = c.getInputStream();  
int i;  
while ((i = s.read()) != -1) {  
     //do something here  
}  

そして、私は理解できません、どの瞬間(その後のメソッド呼び出し)でjavaは実際のリクエストをサーバーに送信しますか?

4

3 に答える 3

6

URL クラスの openConnection() メソッドは、HttpUrlConnectionの新しいインスタンスを返すだけです(プロトコルが http であるため)。getInputStream() または getOutputStream() メソッドを呼び出すまで、実際の接続は行われません。connect() が呼び出され、Google サーバーが接続を受信するのは、これらのメソッドの呼び出し時です。また、プロトコルは http であるため、サーバーは s.read() を使用して読み取っている Google ホームページを返します。(Googleホームページのhtmlページが表示されるはずです)

于 2012-06-18T17:44:34.990 に答える
2

openConnection()メソッド中に発生します。これは、そのドキュメントを読むことでわかります

この URL のプロトコル ハンドラの openConnection メソッドを呼び出すことで、毎回新しい接続が開かれます。

于 2012-06-18T17:46:33.277 に答える
1

呼び出すopenConnectionと、実際には指定された url との接続を作成しようとしており、失敗した場合は をスローしIOExceptionます。

openConnection - この URL のプロトコル ハンドラの openConnection メソッドを呼び出すことで、毎回新しい接続が開かれます。

于 2012-06-18T17:47:41.977 に答える