Apache HttpClient - Bir İsteği İptal Etme
Şunu kullanarak mevcut HTTP isteğini iptal edebilirsiniz. abort() yöntem, yani, bu yöntemi çağırdıktan sonra, belirli bir istek üzerine çalıştırılması iptal edilecektir.
Bu yöntem bir yürütmeden sonra çağrılırsa, bu yürütmenin yanıtları etkilenmeyecek ve sonraki yürütmeler iptal edilecektir.
Misal
Aşağıdaki örneği gözlemlerseniz, bir HttpGet isteği oluşturduk, kullanılan istek biçimini yazdırdık. getMethod().
Daha sonra aynı istekle başka bir infaz gerçekleştirdik. 1 kullanılarak durum satırı Baskılı st tekrar yürütme. Son olarak, ikinci yürütmenin durum satırını yazdırdı.
Tartışıldığı gibi, 1 cevapları st yürütme (iptal yöntemi önceki yürütme) ve, iptal yöntemi sonra mevcut isteğe tüm sonraki infaz bir yürütmesini başarısız olan (ikinci durum iptal yöntemi sonra yazılır hattı dahil olmak üzere) basılır istisna.
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
public class HttpGetExample {
public static void main(String args[]) throws Exception{
//Creating an HttpClient object
CloseableHttpClient httpclient = HttpClients.createDefault();
//Creating an HttpGet object
HttpGet httpget = new HttpGet("http://www.tutorialspoint.com/");
//Printing the method used
System.out.println(httpget.getMethod());
//Executing the Get request
HttpResponse httpresponse = httpclient.execute(httpget);
//Printing the status line
System.out.println(httpresponse.getStatusLine());
httpget.abort();
System.out.println(httpresponse.getEntity().getContentLength());
//Executing the Get request
HttpResponse httpresponse2 = httpclient.execute(httpget);
System.out.println(httpresponse2.getStatusLine());
}
}
Çıktı
Yürütüldüğünde, yukarıdaki program aşağıdaki çıktıyı üretir -
On executing, the above program generates the following output.
GET
HTTP/1.1 200 OK
-1
Exception in thread "main" org.apache.http.impl.execchain.RequestAbortedException:
Request aborted
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:180)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
at HttpGetExample.main(HttpGetExample.java:32)