簡體   English   中英

XWalkResourceClient.shouldInterceptLoadRequest似乎無法正常工作

[英]XWalkResourceClient.shouldInterceptLoadRequest seems not working properly

我正在嘗試覆蓋網址加載。 自定義http請求通過okhttp庫實現。 應用似乎啟動正常,但在啟動后立即關閉。 我仔細檢查了返回的mime-type設置為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;
    }
}

好。 似乎答案很簡單。 我只需要檢查此表達式為空即可: okHttpResponse.body().contentType().charset()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM