前言
有的时候需要知道请求的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);
}
}
测试
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!