android HttpURLConnection 是如何工作的?
How android HttpURLConnection works?
我正在使用 HttpURLConnection class 从我的应用程序中做一些网络 activity。所以我想知道 HttpURLConnection 在内部是如何工作的。我浏览了 class 并发现在 URLConnection.
中定义为抽象的 connect() 方法
但我无法找到 connect() 方法定义。所以我很好奇,HttpURLConnection 是如何连接到服务器的。
MyCode:
URL url = new URL("https://example.com");
connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("Accept-Encoding", "identity");
connection.setRequestProperty("Authorization", basicAuth);
connection.setRequestProperty("Connection", "keep-alive");
connection.setRequestProperty("Content-type", "");
connection.setRequestProperty("User-Agent", "LibHttp/1.3.8");
connection.setRequestMethod("POST");
connection.connect(); // how it connects //
请给我一些解决方案。
这是一个非常宽泛的问题。我会尽量简短地回答这个问题。
每当我们说我们正在发出 http 请求时,我们都会在端口 80(https 为端口 443)上与服务器建立套接字连接。然后我们按照http协议写入socket中,等待服务器响应。
这里有一个超时时间,我们可以设置建立连接的时间,然后设置一个等待服务器响应的时间。
这是一个同步调用,这意味着线程将被阻塞,直到服务器响应或超时发生。
我正在使用 HttpURLConnection class 从我的应用程序中做一些网络 activity。所以我想知道 HttpURLConnection 在内部是如何工作的。我浏览了 class 并发现在 URLConnection.
中定义为抽象的 connect() 方法但我无法找到 connect() 方法定义。所以我很好奇,HttpURLConnection 是如何连接到服务器的。
MyCode:
URL url = new URL("https://example.com");
connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("Accept-Encoding", "identity");
connection.setRequestProperty("Authorization", basicAuth);
connection.setRequestProperty("Connection", "keep-alive");
connection.setRequestProperty("Content-type", "");
connection.setRequestProperty("User-Agent", "LibHttp/1.3.8");
connection.setRequestMethod("POST");
connection.connect(); // how it connects //
请给我一些解决方案。
这是一个非常宽泛的问题。我会尽量简短地回答这个问题。
每当我们说我们正在发出 http 请求时,我们都会在端口 80(https 为端口 443)上与服务器建立套接字连接。然后我们按照http协议写入socket中,等待服务器响应。
这里有一个超时时间,我们可以设置建立连接的时间,然后设置一个等待服务器响应的时间。
这是一个同步调用,这意味着线程将被阻塞,直到服务器响应或超时发生。