Android XWalkResourceClient.shouldInterceptLoadRequest似乎工作不正常

Android XWalkResourceClient.shouldInterceptLoadRequest似乎工作不正常,android,networking,crosswalk-runtime,intercept,crosswalk,Android,Networking,Crosswalk Runtime,Intercept,Crosswalk,我正在尝试覆盖url加载。自定义http请求通过okhttp库实现。应用程序似乎启动良好,但启动后立即关闭。我仔细检查了返回的mime类型设置为text/html等等。那么问题出在哪里呢?这是我的密码: public class MyXWalkResourceClient extends XWalkResourceClient { @Override public XWalkWebResourceResponse shouldInterceptLoadRequest(XWalkV

我正在尝试覆盖url加载。自定义http请求通过okhttp库实现。应用程序似乎启动良好,但启动后立即关闭。我仔细检查了返回的mime类型设置为text/html等等。那么问题出在哪里呢?这是我的密码:

public class MyXWalkResourceClient extends XWalkResourceClient {
    @Override
    public XWalkWebResourceResponse shouldInterceptLoadRequest(XWalkView view, XWalkWebResourceRequest request) {
        Map<String, String> headers = request.getRequestHeaders();
        headers.put("Accept-Language", "ru,en-US;q=0.8,en;q=0.6");

        Request okHttpRequest = new Request.Builder()
                .url(request.getUrl().toString())
                .headers(Headers.of(headers))
                .build();

        Response okHttpResponse = null;
        try {
            okHttpResponse = client.newCall(okHttpRequest).execute();
        } catch (IOException e) {
            e.printStackTrace();
        }

        if (okHttpResponse == null) {
            return null;
        }

        XWalkWebResourceResponse resourceResponse = createXWalkWebResourceResponse(
                okHttpResponse.body().contentType().toString().split(";")[0],
                okHttpResponse.body().contentType().charset().name(),
                okHttpResponse.body().byteStream(),
                okHttpResponse.code(),
                okHttpResponse.message(),
                toRegularMap(okHttpResponse.headers().toMultimap()));
        return resourceResponse;
    }

    private Map<String, String> toRegularMap(Map<String, List<String>> multimap) {
        Map<String, String> resultMap = new HashMap<>();
        for (Entry<String, List<String>> entry : multimap.entrySet()) {
            resultMap.put(entry.getKey(), TextUtils.join(",", entry.getValue()));
        }
        return resultMap;
    }
}
公共类MyXWalkResourceClient扩展了XWalkResourceClient{
@凌驾
公共XWalkWebResourceResponse应InterceptLoadRequest(XWalkView视图、XWalkWebResourceRequest请求){
Map headers=request.getRequestHeaders();
headers.put(“接受语言”,“ru,en-US;q=0.8,en;q=0.6”);
Request okHttpRequest=newrequest.Builder()
.url(request.getUrl().toString())
.标题(标题中的标题)
.build();
响应okHttpResponse=null;
试一试{
okHttpResponse=client.newCall(okHttpRequest.execute();
}捕获(IOE异常){
e、 printStackTrace();
}
if(okHttpResponse==null){
返回null;
}
XWalkWebResourceResponse resourceResponse=createXWalkWebResourceResponse(
okHttpResponse.body().contentType().toString().split(“;”)[0],
okHttpResponse.body().contentType().charset().name(),
okHttpResponse.body().ByTestStream(),
okHttpResponse.code(),
okHttpResponse.message(),
toRegularMap(okHttpResponse.headers().toMultimap());
返回资源响应;
}
私有映射到规则映射(映射多映射){
Map resultMap=new HashMap();
for(条目:multimap.entrySet()){
resultMap.put(entry.getKey(),TextUtils.join(“,”,entry.getValue());
}
返回结果图;
}
}

好的。答案似乎很简单。我只需要检查此表达式是否为空:
okHttpResponse.body().contentType().charset()