我正在使用 HttpURLConnection 发出 POST 请求。我在测试期间始终观察到相同的行为:
- 第一个请求运行得非常快(毫秒)
- 所有以下请求都需要一秒 + 几毫秒
所以有些东西导致了 1 秒的延迟。会是什么?延迟恰好发生在 HttpURLConnection#getInputStream() 中。我用 HttpClient 替换了实现——然后一切正常,没有第二次延迟(所以这不是服务器故障)。但我真的不想使用任何外部依赖项,所以我想修复 HttpURLConnection 的东西......有什么想法吗?
低于当前的实现。我尝试了 stackoverflow 中的一些技巧(向请求中添加标头),但没有成功。
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Length", ""
+ (body == null ? 0 : body.length));
// Send post request
con.setDoOutput(true);
OutputStream wr = con.getOutputStream();
if (body != null) {
wr.write(body);
}
wr.flush();
wr.close();
BufferedReader rd = new BufferedReader(new InputStreamReader(
con.getInputStream()));
String line;
String result = "";
while ((line = rd.readLine()) != null) {
result += line;
}
rd.close();
con.disconnect();
return result;
PS:这是关于jse,而不是android。