我需要每隔500毫秒(0.5秒)向网址发送一个http请求。我不一定需要回复。
目前我正在使用此代码:
Handler h = new Handler;
HttpClient httpclient = new DefaultHttpClient();
h.postDelayed(new Runnable {
// Prepare a request object
HttpGet httpget = new HttpGet(url);
// Execute the request
HttpResponse response;
try {
response = httpclient.execute(httpget);
Log.i("DriveCommand", response.getStatusLine().toString());
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
instream.close();
}
h.postDelayed(this, 500);
} catch (Exception e) {
e.printStackTrace();
}
}, 500);
此代码的问题在于它没有发送命令。也许它在等待响应之前发送下一个响应?
答案 0 :(得分:0)
我最终使用了像Volley或OkHttp这样的异步HTTP库。 Volley将请求添加到队列中并且不等待响应。 (它只是发送新请求,就像我想要的那样)。
我仍在使用处理程序(但现在与Volley结合使用,而不是使用Android的内置http工具),它的工作就像一个魅力!