jfinal解決ios的post提交接受不了參數問題

項目是jfinal框架實現的時候,當iOS向後臺發起請求時,後臺接受不到請求參數,緣由是iOS發起的請求格式是multipart-data類型的,jfinal不能直接處理這種格式,須要先調用getFile系列方法才能使getPara系列方法正常工做,由於multipart request須要經過getFile系列方法解析請求體中的數據,包括參數。一樣的道理在Interceptor、Validator中也須要先調用getFile。解決步驟以下:框架

一、創建一個Interceptor

/**
 * 解決jfianl不能獲取mutipart-data類型參數的問題
 */
public class MultiInterceptor implements Interceptor {
    public void intercept(Invocation invocation) {
        String contentType = invocation.getController().getRequest().getContentType();
        if (contentType != null && contentType.toLowerCase().contains("multipart")) {
            invocation.getController().getFiles();
        }
        invocation.invoke();
    }
}

二、在相應的route裏面使用攔截器Interceptor

public void configRoute(Routes routes) {
        routes.addInterceptor(new MultiInterceptor());
        routes.add("/hello", MyController.class);
}
相關文章
相關標籤/搜索