Java 从DefaultHttpClient优雅地退出

Java 从DefaultHttpClient优雅地退出,java,http-post,httpclient,Java,Http Post,Httpclient,如何退出HttpClient?没有找到任何方法 HttpClient Client = new DefaultHttpClient(); String userpass = usr + ":" + pwd; HttpPost httpGet = new HttpPost(dataimport_cmd); String encoding = DatatypeConverter.printBase64Binary(userpass.getBytes("UTF-8")); httpGet.setHe

如何退出HttpClient?没有找到任何方法

HttpClient Client = new DefaultHttpClient();
String userpass = usr + ":" + pwd;

HttpPost httpGet = new HttpPost(dataimport_cmd);
String encoding = DatatypeConverter.printBase64Binary(userpass.getBytes("UTF-8"));
httpGet.setHeader("Authorization", "Basic " + encoding);

Client.execute(httpGet);
我尝试将execute封装到closeablehttpresponse,但它没有从类中退出

CloseableHttpResponse response = (CloseableHttpResponse) 
Client.execute(httpGet);
response.close();
我也尝试过使用return退出类

CloseableHttpResponse response = (CloseableHttpResponse) 
Client.execute(httpGet);
response.close();

返回

如果您的http客户端版本高于4.3,则可以使用CloseableHttpClient而不是HttpClient。它有一个close()方法


为什么要使用不推荐的类?对于不推荐的问题,您将找不到太多帮助。通常我使用的IDE会显示它。让我查一下新的课程谢谢。实际上,我采用了这种方法,但它仍然没有退出。尽管我没有使用defaulthttpclient,因为前面的评论建议不要使用depracated类。CloseableHttpClient客户端=HttpClientBuilder.create().build();HttpPost httpGet=新的HttpPost(数据导入_cmd);字符串编码=DatatypeConverter.printBase64Binary(userpass.getBytes(“UTF-8”);setHeader(“授权”、“基本”+编码);client.execute(httpGet);client.close();实际上,你的源代码是正确的,对我有用。但若我使用像“”这样的url,其中192.168.3.66已关闭,那个么应用程序将等待client.execute()调用,直到超时。你可能有类似的情况。