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)