| /* |
| * $HeadURL: http://svn.apache.org/repos/asf/jakarta/httpcomponents/httpcore/tags/4.0-alpha6/module-main/src/test/java/org/apache/http/mockup/TestHttpClient.java $ |
| * $Revision: 576077 $ |
| * $Date: 2007-09-16 04:50:22 -0700 (Sun, 16 Sep 2007) $ |
| * |
| * ==================================================================== |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * ==================================================================== |
| * |
| * This software consists of voluntary contributions made by many |
| * individuals on behalf of the Apache Software Foundation. For more |
| * information on the Apache Software Foundation, please see |
| * <http://www.apache.org/>. |
| * |
| */ |
| |
| package android.core; |
| |
| import java.io.IOException; |
| |
| import org.apache.http.ConnectionReuseStrategy; |
| import org.apache.http.HttpClientConnection; |
| import org.apache.http.HttpException; |
| import org.apache.http.HttpHost; |
| import org.apache.http.HttpRequest; |
| import org.apache.http.HttpResponse; |
| import org.apache.http.HttpVersion; |
| import org.apache.http.impl.DefaultConnectionReuseStrategy; |
| import org.apache.http.params.BasicHttpParams; |
| import org.apache.http.params.CoreConnectionPNames; |
| import org.apache.http.params.DefaultedHttpParams; |
| import org.apache.http.params.HttpParams; |
| import org.apache.http.params.CoreProtocolPNames; |
| import org.apache.http.protocol.BasicHttpProcessor; |
| import org.apache.http.protocol.HttpContext; |
| import org.apache.http.protocol.BasicHttpContext; |
| import org.apache.http.protocol.ExecutionContext; |
| import org.apache.http.protocol.HttpRequestExecutor; |
| import org.apache.http.protocol.RequestConnControl; |
| import org.apache.http.protocol.RequestContent; |
| import org.apache.http.protocol.RequestExpectContinue; |
| import org.apache.http.protocol.RequestTargetHost; |
| import org.apache.http.protocol.RequestUserAgent; |
| |
| public class TestHttpClient { |
| |
| private final HttpParams params; |
| private final BasicHttpProcessor httpproc; |
| private final HttpRequestExecutor httpexecutor; |
| private final ConnectionReuseStrategy connStrategy; |
| private final HttpContext context; |
| |
| public TestHttpClient() { |
| super(); |
| this.params = new BasicHttpParams(); |
| this.params |
| .setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 5000) |
| .setBooleanParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK, false) |
| .setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1) |
| .setParameter(CoreProtocolPNames.USER_AGENT, "TEST-CLIENT/1.1"); |
| |
| this.httpproc = new BasicHttpProcessor(); |
| // Required protocol interceptors |
| this.httpproc.addInterceptor(new RequestContent()); |
| this.httpproc.addInterceptor(new RequestTargetHost()); |
| // Recommended protocol interceptors |
| this.httpproc.addInterceptor(new RequestConnControl()); |
| this.httpproc.addInterceptor(new RequestUserAgent()); |
| this.httpproc.addInterceptor(new RequestExpectContinue()); |
| |
| this.httpexecutor = new HttpRequestExecutor(); |
| this.connStrategy = new DefaultConnectionReuseStrategy(); |
| this.context = new BasicHttpContext(null); |
| } |
| |
| public HttpParams getParams() { |
| return this.params; |
| } |
| |
| public HttpResponse execute( |
| final HttpRequest request, |
| final HttpHost targetHost, |
| final HttpClientConnection conn) throws HttpException, IOException { |
| this.context.setAttribute(ExecutionContext.HTTP_REQUEST, request); |
| this.context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, targetHost); |
| this.context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn); |
| request.setParams( |
| new DefaultedHttpParams(request.getParams(), this.params)); |
| this.httpexecutor.preProcess(request, this.httpproc, this.context); |
| HttpResponse response = this.httpexecutor.execute(request, conn, this.context); |
| response.setParams( |
| new DefaultedHttpParams(response.getParams(), this.params)); |
| this.httpexecutor.postProcess(response, this.httpproc, this.context); |
| return response; |
| } |
| |
| public boolean keepAlive(final HttpResponse response) { |
| return this.connStrategy.keepAlive(response, this.context); |
| } |
| |
| } |