急求、万分感激——如何给内嵌浏览器(SWT的Browser)设置代理

时间:2021-06-01 22:20:40
近期接到的项目,客户要求能内置浏览器到程序中(客户登录后才能打开),并且该浏览器要实现代理功能,即使用客户提供的代理服务器来访问相关网站;当关闭应用程序的时候,浏览器也要自动关闭,同时代理功能取消。
首先当然是使用JAVA的代理功能,使用

System.setProperty("http.proxyHost", "202.106.155.208");
//设置代理服务器端口号
        System.setProperty("http.proxyPort", "8080");
        System.setProperty("http.proxySet", "true");

这样设置后,即可实现代理
然后我当然是使用了JAVA自带的JEditorPane工具,该工具在访问网址时是通过上述设置的代理服务器去访问的,只是可惜对CSS和JS的效果实在太差,可以说完全没用

JEditorPane jep=new JEditorPane();
jep.setContentType("text/html");
jep.setEditable(false);
jep.setPage("http://www.baidu.com");

之后我分别使用了网上推荐的JDIC的浏览器,以及SWT的Browser浏览器,访问效果是不错,但是在访问网址时根本就不通过代理服务器,上网查了很多资料,又查阅了API文档,都没发现类似解决方式,现在就卡在这里了,也可以说是卡在了技术难点的最后一步,不得已,只有上来请教大神们,非常感激
PS:我曾试过将URL走代理通过读取输入输出流来获得网页内容,再放到浏览器中(Browser),但是这样的效果并不好,常出现部分图片、JS效果无效,要知道浏览器直接访问网址获得内容是不会出现问题的,而且侦听客户点击链接、提交表单的难度和出错几率也较高,故只能放弃该方法。也就是最好的效果,还是让浏览器能够自己走代理去访问网址!

3 个解决方案

#2


引用 1 楼 qu1210 的回复:
http://blog.csdn.net/hemingwang0902/article/details/4405310

谢谢,不过这个我会,我就是要问下有办法可以给browser设置代理不(ie的),火狐貌似可以,但是需要预安装,客户希望是下载下来直接可以用的

#3


你怎么解决的  我正在遇到这个问题

#1


#2


引用 1 楼 qu1210 的回复:
http://blog.csdn.net/hemingwang0902/article/details/4405310

谢谢,不过这个我会,我就是要问下有办法可以给browser设置代理不(ie的),火狐貌似可以,但是需要预安装,客户希望是下载下来直接可以用的

#3


你怎么解决的  我正在遇到这个问题