package com.dteviot.epubviewer.WebServer; import java.io.IOException; import org.apache.http.HttpException; import org.apache.http.HttpRequest; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.entity.InputStreamEntity; import org.apache.http.protocol.HttpContext; import org.apache.http.protocol.HttpRequestHandler; import android.net.Uri; import com.dteviot.epubviewer.IResourceSource; import com.dteviot.epubviewer.ResourceResponse; public class FileRequestHandler implements HttpRequestHandler { private IResourceSource mResourceSource = null; public FileRequestHandler(IResourceSource resourceSource){ this.mResourceSource = resourceSource; } @Override public void handle(HttpRequest request, HttpResponse response, HttpContext context) throws HttpException, IOException { String uriString = request.getRequestLine().getUri(); ResourceResponse resource = mResourceSource.fetch(Uri.parse(uriString)); if ((resource != null) && (resource.getData() != null)) { InputStreamEntity entity = new InputStreamEntity(resource.getData(), resource.getSize()); entity.setContentType(resource.getMimeType()); response.setEntity(entity); } else { response.setStatusLine(request.getProtocolVersion(), HttpStatus.SC_NOT_FOUND, "File Not Found"); } } }