前言

有的时候需要知道请求的ip地址,但是网路比较复杂,无法获取到。这时可由cef直接告诉后台ip地址

增加请求处理适配

CefClient client_ = cefApp.createClient();
client_.addRequestHandler(new RequestHandlerAdapter());

请求适配器实现

public class RequestHandlerAdapter extends CefRequestHandlerAdapter {
    private String ip;

    public RequestHandlerAdapter() {
        InetUtils inetUtils = new InetUtils(new InetUtilsProperties());
        ip = inetUtils.findFirstNonLoopbackAddress().getHostAddress();
    }

    @Override
    public boolean onBeforeResourceLoad(CefBrowser browser, CefRequest request) {
        System.out.println(ip);
        Map<String, String> headers = new HashMap<>();
        request.getHeaderMap(headers);
        headers.put("TERMINAL_IP", ip);
        request.setHeaderMap(headers);
        System.out.println(request.toString());
        return false;
    }

    @Override
    public boolean onBeforeBrowse(CefBrowser browser, CefRequest request, boolean is_redirect) {
        return super.onBeforeBrowse(browser, request, is_redirect);
    }
}

测试

upload successful



JCEF      请求拦截处理

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!