// Path: library/src/main/java/com/vincan/medialoader/tinyhttpd/request/Request.java
// public interface Request {
// 
//     HttpMethod method();
// 
//     String url();
// 
//     HttpVersion protocol();
// 
//     HttpHeaders headers();
// 
//     String getParam(String name);
// }
// 
// Path: library/src/main/java/com/vincan/medialoader/tinyhttpd/response/Response.java
// public interface Response {
// 
//     HttpStatus status();
// 
//     void setStatus(HttpStatus status);
// 
//     HttpVersion protocol();
// 
//     HttpHeaders headers();
// 
//     /**
//      * 添加头部
//      *
//      * @param key   {@link com.vincan.medialoader.tinyhttpd.HttpHeaders.Names}
//      * @param value
//      */
//     void addHeader(String key, String value);
// 
//     void write(byte[] bytes) throws IOException;
// 
//     void write(byte[] bytes, int offset, int length) throws IOException;
// }
// 
// Path: library/src/main/java/com/vincan/medialoader/tinyhttpd/response/ResponseException.java
// public final class ResponseException extends Exception {
// 
//     private final HttpStatus status;
// 
//     public ResponseException(HttpStatus status) {
//         super(status.desc);
//         this.status = status;
//     }
// 
//     public ResponseException(HttpStatus status, String message) {
//         super(message);
//         this.status = status;
//     }
// 
//     public ResponseException(HttpStatus status, String message, Exception e) {
//         super(message, e);
//         this.status = status;
//     }
// 
//     public HttpStatus getStatus() {
//         return this.status;
//     }
// }


import com.vincan.medialoader.tinyhttpd.request.Request;
import com.vincan.medialoader.tinyhttpd.response.Response;
import com.vincan.medialoader.tinyhttpd.response.ResponseException;
import java.io.IOException;

package com.vincan.medialoader.tinyhttpd.interceptor;



/**
 * 拦截器
 *
 * @author wencanyang
 */
public interface Interceptor {
    void intercept(Chain chain) throws ResponseException, IOException;

    /**
     * 拦截器链
     */
    interface Chain {
        Request request();


// Path: library/src/main/java/com/vincan/medialoader/tinyhttpd/request/Request.java
// public interface Request {
// 
//     HttpMethod method();
// 
//     String url();
// 
//     HttpVersion protocol();
// 
//     HttpHeaders headers();
// 
//     String getParam(String name);
// }
// 
// Path: library/src/main/java/com/vincan/medialoader/tinyhttpd/response/Response.java
// public interface Response {
// 
//     HttpStatus status();
// 
//     void setStatus(HttpStatus status);
// 
//     HttpVersion protocol();
// 
//     HttpHeaders headers();
// 
//     /**
//      * 添加头部
//      *
//      * @param key   {@link com.vincan.medialoader.tinyhttpd.HttpHeaders.Names}
//      * @param value
//      */
//     void addHeader(String key, String value);
// 
//     void write(byte[] bytes) throws IOException;
// 
//     void write(byte[] bytes, int offset, int length) throws IOException;
// }
// 
// Path: library/src/main/java/com/vincan/medialoader/tinyhttpd/response/ResponseException.java
// public final class ResponseException extends Exception {
// 
//     private final HttpStatus status;
// 
//     public ResponseException(HttpStatus status) {
//         super(status.desc);
//         this.status = status;
//     }
// 
//     public ResponseException(HttpStatus status, String message) {
//         super(message);
//         this.status = status;
//     }
// 
//     public ResponseException(HttpStatus status, String message, Exception e) {
//         super(message, e);
//         this.status = status;
//     }
// 
//     public HttpStatus getStatus() {
//         return this.status;
//     }
// }


// Path: library/src/main/java/com/vincan/medialoader/tinyhttpd/interceptor/Interceptor.java
import com.vincan.medialoader.tinyhttpd.request.Request;
import com.vincan.medialoader.tinyhttpd.response.Response;
import com.vincan.medialoader.tinyhttpd.response.ResponseException;
import java.io.IOException;

package com.vincan.medialoader.tinyhttpd.interceptor;



/**
 * 拦截器
 *
 * @author wencanyang
 */
public interface Interceptor {
    void intercept(Chain chain) throws ResponseException, IOException;

    /**
     * 拦截器链
     */
    interface Chain {
        Request request();


        Response response();
