我正在使用 HttpURLConnection 类从我的应用程序中执行一些网络活动。所以我想知道HttpURLConnection如何在内部工作。我经历了这个课程,发现在 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 //
请建议我解决一下。
答案 0 :(得分:1)
这是一个非常广泛的问题。我将尽力回答这个问题。
每当我们说我们正在发出http请求时,我们就在端口80(用于https的端口443)上建立与服务器的套接字连接。然后我们按照http协议写入套接字并等待服务器响应。
这里有一个超时我们可以设置建立连接,然后设置我们等待服务器响应的时间。
这是一个同步调用,这意味着线程将被阻塞,直到服务器响应或超时发生。