Httpclient-Tutorial.Pdf

Httpclient-Tutorial.Pdf

HttpClient Tutorial Oleg Kalnichevski Jonathan Moore Jilles van Gurp Preface .................................................................................................................................... iv 1. HttpClient scope .......................................................................................................... iv 2. What HttpClient is NOT .............................................................................................. iv 1. Fundamentals ....................................................................................................................... 1 1.1. Request execution ...................................................................................................... 1 1.1.1. HTTP request .................................................................................................. 1 1.1.2. HTTP response ............................................................................................... 2 1.1.3. Working with message headers ........................................................................ 2 1.1.4. HTTP entity .................................................................................................... 3 1.1.5. Ensuring release of low level resources ............................................................ 5 1.1.6. Consuming entity content ................................................................................ 6 1.1.7. Producing entity content .................................................................................. 6 1.1.8. Response handlers ........................................................................................... 7 1.2. HttpClient interface .................................................................................................... 8 1.2.1. HttpClient thread safety ................................................................................... 8 1.2.2. HttpClient resource deallocation ...................................................................... 9 1.3. HTTP execution context ............................................................................................. 9 1.4. HTTP protocol interceptors ...................................................................................... 10 1.5. Exception handling ................................................................................................... 11 1.5.1. HTTP transport safety ................................................................................... 11 1.5.2. Idempotent methods ...................................................................................... 12 1.5.3. Automatic exception recovery ........................................................................ 12 1.5.4. Request retry handler ..................................................................................... 12 1.6. Aborting requests ..................................................................................................... 13 1.7. Redirect handling ..................................................................................................... 13 2. Connection management ..................................................................................................... 15 2.1. Connection persistence ............................................................................................. 15 2.2. HTTP connection routing ......................................................................................... 15 2.2.1. Route computation ........................................................................................ 15 2.2.2. Secure HTTP connections .............................................................................. 15 2.3. HTTP connection managers ...................................................................................... 16 2.3.1. Managed connections and connection managers .............................................. 16 2.3.2. Simple connection manager ........................................................................... 16 2.3.3. Pooling connection manager .......................................................................... 17 2.3.4. Connection manager shutdown ....................................................................... 17 2.4. Multithreaded request execution ................................................................................ 17 2.5. Connection eviction policy ....................................................................................... 19 2.6. Connection keep alive strategy ................................................................................. 20 2.7. Connection socket factories ...................................................................................... 20 2.7.1. Secure socket layering ................................................................................... 21 2.7.2. Integration with connection manager .............................................................. 21 2.7.3. SSL/TLS customization ................................................................................. 21 2.7.4. Hostname verification .................................................................................... 21 2.8. HttpClient proxy configuration ................................................................................. 22 3. HTTP state management ..................................................................................................... 24 3.1. HTTP cookies .......................................................................................................... 24 3.2. Cookie specifications ............................................................................................... 24 3.3. Choosing cookie policy ............................................................................................ 25 3.4. Custom cookie policy ............................................................................................... 26 ii HttpClient Tutorial 3.5. Cookie persistence ................................................................................................... 26 3.6. HTTP state management and execution context ......................................................... 26 4. HTTP authentication ........................................................................................................... 28 4.1. User credentials ....................................................................................................... 28 4.2. Authentication schemes ............................................................................................ 28 4.3. Credentials provider ................................................................................................. 29 4.4. HTTP authentication and execution context ............................................................... 30 4.5. Caching of authentication data .................................................................................. 31 4.6. Preemptive authentication ......................................................................................... 31 4.7. NTLM Authentication .............................................................................................. 32 4.7.1. NTLM connection persistence ........................................................................ 32 4.8. SPNEGO/Kerberos Authentication ................................................................................ 33 4.8.1. SPNEGO support in HttpClient ......................................................................... 33 4.8.2. GSS/Java Kerberos Setup .............................................................................. 33 4.8.3. login.conf file ............................................................................................. 34 4.8.4. krb5.conf / krb5.ini file ............................................................................. 34 4.8.5. Windows Specific configuration ..................................................................... 34 5. Fluent API .......................................................................................................................... 36 5.1. Easy to use facade API ............................................................................................ 36 5.1.1. Response handling ......................................................................................... 37 6. HTTP Caching .................................................................................................................... 38 6.1. General Concepts ..................................................................................................... 38 6.2. RFC-2616 Compliance ............................................................................................. 39 6.3. Example Usage ........................................................................................................ 39 6.4. Configuration ........................................................................................................... 39 6.5. Storage Backends ..................................................................................................... 40 7. Advanced topics ................................................................................................................. 41 7.1. Custom client connections ........................................................................................ 41 7.2. Stateful HTTP connections ....................................................................................... 41 7.2.1. User token handler .......................................................................................

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    49 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us