Wed, 31 Dec 2014 07:22:50 +0100
Correct previous dual key logic pending first delivery installment.
michael@0 | 1 | <html> |
michael@0 | 2 | <head> |
michael@0 | 3 | <!-- |
michael@0 | 4 | /* |
michael@0 | 5 | * ==================================================================== |
michael@0 | 6 | * Licensed to the Apache Software Foundation (ASF) under one |
michael@0 | 7 | * or more contributor license agreements. See the NOTICE file |
michael@0 | 8 | * distributed with this work for additional information |
michael@0 | 9 | * regarding copyright ownership. The ASF licenses this file |
michael@0 | 10 | * to you under the Apache License, Version 2.0 (the |
michael@0 | 11 | * "License"); you may not use this file except in compliance |
michael@0 | 12 | * with the License. You may obtain a copy of the License at |
michael@0 | 13 | * |
michael@0 | 14 | * http://www.apache.org/licenses/LICENSE-2.0 |
michael@0 | 15 | * |
michael@0 | 16 | * Unless required by applicable law or agreed to in writing, |
michael@0 | 17 | * software distributed under the License is distributed on an |
michael@0 | 18 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
michael@0 | 19 | * KIND, either express or implied. See the License for the |
michael@0 | 20 | * specific language governing permissions and limitations |
michael@0 | 21 | * under the License. |
michael@0 | 22 | * ==================================================================== |
michael@0 | 23 | * |
michael@0 | 24 | * This software consists of voluntary contributions made by many |
michael@0 | 25 | * individuals on behalf of the Apache Software Foundation. For more |
michael@0 | 26 | * information on the Apache Software Foundation, please see |
michael@0 | 27 | * <http://www.apache.org/>. |
michael@0 | 28 | * |
michael@0 | 29 | */ |
michael@0 | 30 | --> |
michael@0 | 31 | </head> |
michael@0 | 32 | <body> |
michael@0 | 33 | The API for client-side HTTP communication. |
michael@0 | 34 | <p/> |
michael@0 | 35 | The usual execution flow can be demonstrated by the |
michael@0 | 36 | code snippet below: |
michael@0 | 37 | |
michael@0 | 38 | <PRE> |
michael@0 | 39 | HttpClient httpclient = new DefaultHttpClient(); |
michael@0 | 40 | |
michael@0 | 41 | // Prepare a request object |
michael@0 | 42 | HttpGet httpget = new HttpGet("http://www.apache.org/"); |
michael@0 | 43 | |
michael@0 | 44 | // Execute the request |
michael@0 | 45 | HttpResponse response = httpclient.execute(httpget); |
michael@0 | 46 | |
michael@0 | 47 | // Examine the response status |
michael@0 | 48 | System.out.println(response.getStatusLine()); |
michael@0 | 49 | |
michael@0 | 50 | // Get hold of the response entity |
michael@0 | 51 | HttpEntity entity = response.getEntity(); |
michael@0 | 52 | |
michael@0 | 53 | // If the response does not enclose an entity, there is no need |
michael@0 | 54 | // to worry about connection release |
michael@0 | 55 | if (entity != null) { |
michael@0 | 56 | InputStream instream = entity.getContent(); |
michael@0 | 57 | try { |
michael@0 | 58 | |
michael@0 | 59 | BufferedReader reader = new BufferedReader( |
michael@0 | 60 | new InputStreamReader(instream)); |
michael@0 | 61 | // do something useful with the response |
michael@0 | 62 | System.out.println(reader.readLine()); |
michael@0 | 63 | |
michael@0 | 64 | } catch (IOException ex) { |
michael@0 | 65 | |
michael@0 | 66 | // In case of an IOException the connection will be released |
michael@0 | 67 | // back to the connection manager automatically |
michael@0 | 68 | throw ex; |
michael@0 | 69 | |
michael@0 | 70 | } catch (RuntimeException ex) { |
michael@0 | 71 | |
michael@0 | 72 | // In case of an unexpected exception you may want to abort |
michael@0 | 73 | // the HTTP request in order to shut down the underlying |
michael@0 | 74 | // connection and release it back to the connection manager. |
michael@0 | 75 | httpget.abort(); |
michael@0 | 76 | throw ex; |
michael@0 | 77 | |
michael@0 | 78 | } finally { |
michael@0 | 79 | |
michael@0 | 80 | // Closing the input stream will trigger connection release |
michael@0 | 81 | instream.close(); |
michael@0 | 82 | |
michael@0 | 83 | } |
michael@0 | 84 | } |
michael@0 | 85 | |
michael@0 | 86 | </PRE> |
michael@0 | 87 | |
michael@0 | 88 | </body> |
michael@0 | 89 | </html> |