Android 输入流上的响应时间
当我尝试在Instagram上发出get请求时,平均延迟为250毫秒。在iOS上的相同调用大约为50毫秒。我尝试了StringBuilder、HttpGet和HttpResponse(最差延迟为350毫秒)Android 输入流上的响应时间,android,inputstream,http-get,urlconnection,instagram-api,Android,Inputstream,Http Get,Urlconnection,Instagram Api,当我尝试在Instagram上发出get请求时,平均延迟为250毫秒。在iOS上的相同调用大约为50毫秒。我尝试了StringBuilder、HttpGet和HttpResponse(最差延迟为350毫秒) 有人能告诉我如何减少延迟吗?什么是可变的响应?传输了多少数据?你能提前预测(至少有一个界限)有多少数据将被传输吗?延迟是在哪里引入的?是建立连接、实际请求还是数据传输?传输了多少数据?如果您提供的信息不准确,我们将无法帮助您。您已经编辑了您的问题,将response声明添加为String,但
有人能告诉我如何减少延迟吗?什么是可变的
响应
?传输了多少数据?你能提前预测(至少有一个界限)有多少数据将被传输吗?延迟是在哪里引入的?是建立连接、实际请求还是数据传输?传输了多少数据?如果您提供的信息不准确,我们将无法帮助您。您已经编辑了您的问题,将response
声明添加为String
,但是String
没有append()
方法,例如您的代码在response
上调用@dhke Delay是在urlConnection.getInputStream()上。get方法是(https://)api.instagram.com/v1/users/{user id}/media/recent/?access\u token=access-token,响应为JSON@Erturr嗯,那是在读取任何数据之前,即在套接字连接和HTTP请求阶段。您可以尝试将原始SSLSocket
设置到同一服务器的端口443
,查看延迟是否由TLS协商实际引入。
StringBuilder response = "";
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.connect();
long start2 = System.currentTimeMillis();
BufferedReader reader = new BufferedReader(new InputStreamReader( urlConnection.getInputStream()));
Log.e("Response Time", "Reader ends = " + (System.currentTimeMillis() - start2));
char[] buf = new char[2048];
int charsRead;
while((charsRead = reader.read(buf, 0, 2048)) > 0) {
response.append(buf, 0, charsRead);
}
reader.close();
urlConnection.close();