|
|
@ -20,6 +20,7 @@ import com.teamdev.jxbrowser.net.callback.InterceptUrlRequestCallback; |
|
|
|
import org.jetbrains.annotations.NotNull; |
|
|
|
import org.jetbrains.annotations.NotNull; |
|
|
|
|
|
|
|
|
|
|
|
import java.io.InputStream; |
|
|
|
import java.io.InputStream; |
|
|
|
|
|
|
|
import java.io.UnsupportedEncodingException; |
|
|
|
import java.net.URLDecoder; |
|
|
|
import java.net.URLDecoder; |
|
|
|
import java.nio.charset.StandardCharsets; |
|
|
|
import java.nio.charset.StandardCharsets; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Map; |
|
|
@ -80,8 +81,9 @@ public class NxInterceptRequestCallback implements InterceptUrlRequestCallback { |
|
|
|
|
|
|
|
|
|
|
|
protected Optional<UrlRequestJob> generateFileProtocolUrlRequestJob(Params params, String path) { |
|
|
|
protected Optional<UrlRequestJob> generateFileProtocolUrlRequestJob(Params params, String path) { |
|
|
|
try { |
|
|
|
try { |
|
|
|
InputStream inputStream = getResourceStream(path); |
|
|
|
String resourcePath = getResourcePath(path); |
|
|
|
String mimeType = MimeType.parseMimeType(path); |
|
|
|
InputStream inputStream = getResourceStream(resourcePath); |
|
|
|
|
|
|
|
String mimeType = MimeType.parseMimeType(resourcePath); |
|
|
|
byte[] bytes; |
|
|
|
byte[] bytes; |
|
|
|
if (isHtml(mimeType)) { |
|
|
|
if (isHtml(mimeType)) { |
|
|
|
String text = IOUtils.inputStream2String(inputStream, EncodeConstants.ENCODING_UTF_8); |
|
|
|
String text = IOUtils.inputStream2String(inputStream, EncodeConstants.ENCODING_UTF_8); |
|
|
@ -104,7 +106,11 @@ public class NxInterceptRequestCallback implements InterceptUrlRequestCallback { |
|
|
|
* @return 输入流 |
|
|
|
* @return 输入流 |
|
|
|
* @throws Exception IO异常 |
|
|
|
* @throws Exception IO异常 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
private InputStream getResourceStream(String path) throws Exception { |
|
|
|
private InputStream getResourceStream(String path) { |
|
|
|
|
|
|
|
return IOUtils.readResource(path); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static String getResourcePath(String path) throws UnsupportedEncodingException { |
|
|
|
int index = path.indexOf("="); |
|
|
|
int index = path.indexOf("="); |
|
|
|
if (index > 0) { |
|
|
|
if (index > 0) { |
|
|
|
path = path.substring(index + 1); |
|
|
|
path = path.substring(index + 1); |
|
|
@ -115,7 +121,7 @@ public class NxInterceptRequestCallback implements InterceptUrlRequestCallback { |
|
|
|
// 通过自定义协议之后的url会自动encode一些中文字符,这里做一个decode,否则会导致路径访问失败
|
|
|
|
// 通过自定义协议之后的url会自动encode一些中文字符,这里做一个decode,否则会导致路径访问失败
|
|
|
|
path = URLDecoder.decode(path, StandardCharsets.UTF_8.name()); |
|
|
|
path = URLDecoder.decode(path, StandardCharsets.UTF_8.name()); |
|
|
|
} |
|
|
|
} |
|
|
|
return IOUtils.readResource(path); |
|
|
|
return path; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private boolean isHtml(String mimeType) { |
|
|
|
private boolean isHtml(String mimeType) { |
|
|
|