Android Open Source - getrest Http Service Request Executor






From Project

Back to project page getrest.

License

The source code is released under:

Apache License

If you think the Android project getrest listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright 2012 Alexey Hanin// w  ww .j av a2s  .  c o m
 *
 * Licensed 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.
 */
package getrest.android.http;

import getrest.android.core.Header;
import getrest.android.core.Headers;
import getrest.android.core.Method;

import getrest.android.service.ServiceRequest;
import getrest.android.service.ServiceRequestExecutor;
import getrest.android.service.ServiceResponse;

import org.apache.http.HeaderElement;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.impl.client.DefaultHttpClient;

import java.io.IOException;

import java.net.URI;


/**
 * @author aha
 * @since 2012-01-13
 */
public class HttpServiceRequestExecutor implements ServiceRequestExecutor {

    public void execute(final ServiceRequest request,
        final ServiceResponse response) throws IOException {
        final DefaultHttpClient httpClient = new DefaultHttpClient();
        final HttpUriRequest httpRequest = createHttpRequest(request);

        final HttpResponse httpResponse;

        httpResponse = httpClient.execute(httpRequest);
        response.setEntity(new RepresentationHttpEntity(
                httpResponse.getEntity()));

        final org.apache.http.Header[] allHeaders = httpResponse.getAllHeaders();
        final Headers headers = new Headers();

        for (org.apache.http.Header httpHeader : allHeaders) {
            for (HeaderElement headerElement : httpHeader.getElements()) {
                headers.add(new Header(headerElement.getName(),
                        headerElement.getValue()));
            }
        }

        response.setHeaders(headers);

        // TODO finish HTTP request implementation
    }

    private HttpUriRequest createHttpRequest(final ServiceRequest request) {
        final Method method = request.getMethod();

        if (method == null) {
            throw new IllegalArgumentException(
                "Method must be specified in request");
        }

        final HttpUriRequest httpRequest;

        if (Method.GET.equals(method)) {
            httpRequest = new HttpGet();
        } else if (Method.POST.equals(method)) {
            final HttpPost post = new HttpPost();
            post.setURI(URI.create(request.getUri().toString()));
            post.setEntity(new HttpEntityRepresentation(request.getEntity()));
            httpRequest = post;
        } else if (Method.DELETE.equals(method)) {
            httpRequest = new HttpDelete();
        } else {
            throw new IllegalStateException("Unsupported method");
        }

        if (request.getHeaders().count() > 0) {
            for (Header header : request.getHeaders()) {
                httpRequest.addHeader(header.getName(), header.getValue());
            }
        }

        return httpRequest;
    }
}




Java Source Code List

getrest.android.RestfulClient.java
getrest.android.client.InMemoryRequestManager.java
getrest.android.client.RequestCallbackFactory.java
getrest.android.client.RequestCallback.java
getrest.android.client.RequestExecutor.java
getrest.android.client.RequestFuture.java
getrest.android.client.RequestRegistry.java
getrest.android.client.impl.RequestEventRecord.java
getrest.android.client.impl.RequestFutureImpl.java
getrest.android.client.impl.RequestRegistryEditorImpl.java
getrest.android.client.impl.RequestRegistryEntryFactory.java
getrest.android.client.impl.RequestRegistryPreferencesImpl.java
getrest.android.client.impl.RestfulClientImpl.java
getrest.android.client.impl.TransactionalRequestEntryStorage.java
getrest.android.config.ConfigResolver.java
getrest.android.config.Config.java
getrest.android.config.DefaultContributor.java
getrest.android.config.HasConfig.java
getrest.android.config.ResourceContextContribution.java
getrest.android.config.ResourceContextContributor.java
getrest.android.config.ResourceNode.java
getrest.android.config.ResourcePath.java
getrest.android.core.BaseRequest.java
getrest.android.core.ErrorState.java
getrest.android.core.Error.java
getrest.android.core.HandlerException.java
getrest.android.core.HasHeaders.java
getrest.android.core.Header.java
getrest.android.core.HeadersHelper.java
getrest.android.core.Headers.java
getrest.android.core.Method.java
getrest.android.core.Pack.java
getrest.android.core.Request.java
getrest.android.core.Response.java
getrest.android.core.Status.java
getrest.android.exception.GetrestException.java
getrest.android.exception.GetrestRuntimeException.java
getrest.android.executor.Handler.java
getrest.android.executor.PostMethodPipeline.java
getrest.android.executor.RequestHandlerFactory.java
getrest.android.executor.RequestHandlerImpl.java
getrest.android.executor.RequestHandler.java
getrest.android.executor.RequestPipeline.java
getrest.android.http.HttpEntityRepresentation.java
getrest.android.http.HttpServiceRequestExecutor.java
getrest.android.http.RepresentationHttpEntity.java
getrest.android.request.RequestContext.java
getrest.android.request.RequestLifecycle.java
getrest.android.request.RequestManager.java
getrest.android.request.RequestStatus.java
getrest.android.resource.Marshaller.java
getrest.android.resource.Packer.java
getrest.android.resource.ResourceContextImpl.java
getrest.android.resource.ResourceContext.java
getrest.android.service.Broadcaster.java
getrest.android.service.Representation.java
getrest.android.service.RequestEventBus.java
getrest.android.service.RequestJob.java
getrest.android.service.RequestStateChangeEventWrapper.java
getrest.android.service.RequestWrapper.java
getrest.android.service.RestService.java
getrest.android.service.ServiceRequestExecutor.java
getrest.android.service.ServiceRequest.java
getrest.android.service.ServiceResponse.java
getrest.android.testapp.GetrestTestApplication.java
getrest.android.testapp.MainActivity.java
getrest.android.util.LoggerFactory.java
getrest.android.util.Logger.java
getrest.android.util.WorkerQueue.java