[我正在尝试通过截击将图像和视频转换为Base64(字符串)来上传它们。
现在的原因是我想向用户显示需要多少时间来上传此数据。
有什么方法可以在击中api调用之后并获得响应之前获得截击响应时间。那将花费多少时间来响应api调用。
我已经尝试过了。
private long mRequestStartTime;
public void performRequest()
{
mRequestStartTime = System.currentTimeMillis(); // set the request start
time just before you send the request.
JsonObjectRequest request = new JsonObjectRequest(URL, PARAMS,
new Response.Listener<JSONObject>()
{
@Override
public void onResponse(JSONObject response)
{
// calculate the duration in milliseconds
long totalRequestTime = System.currentTimeMillis() - mRequestStartTime;
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error)
{
long totalRequestTime = System.currentTimeMillis() - mRequestStartTime;
}
});
requestQueue.add(request);
}
但是以这种方式,它给了响应时间。
如果有人有解决方案,请分享。
我相信排球没有开箱即用的选项,您需要自己计算。您将需要更改上传方法,以便可以进行流式上传,以便能够计算已发送的字节数。然后,您的估算上传时间将类似于requiredTime = totalBytes * bytesUploadedSoFar / passedTime
您需要自己计算。这是查看响应需要多长时间的一种快速方法:
private long mRequestStartTime;
public void performRequest()
{
mRequestStartTime = System.currentTimeMillis(); // set the request start time just before you send the request.
JsonObjectRequest request = new JsonObjectRequest(URL, PARAMS,
new Response.Listener<JSONObject>()
{
@Override
public void onResponse(JSONObject response)
{
// calculate the duration in milliseconds
long totalRequestTime = System.currentTimeMillis() - mRequestStartTime;
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error)
{
long totalRequestTime = System.currentTimeMillis() - mRequestStartTime;
}
});
requestQueue.add(request);
}