当前位置: 技术问答>java相关
高手请进,在线等待。
来源: 互联网 发布时间:2015-10-01
本文导语: 我在网上下载了一个Http代理程序,但是目前我这样一个问题,就是网页上的图片无法显示,通过代理取得返回响应的代码如下: while((i = in.read()) != -1) { char chr = (char)i; buf.append(chr...
我在网上下载了一个Http代理程序,但是目前我这样一个问题,就是网页上的图片无法显示,通过代理取得返回响应的代码如下:
while((i = in.read()) != -1) {
char chr = (char)i;
buf.append(chr);
if(buf.toString().endsWith("")) {
break;
}
}
out.close();in.close();
response = new String(buf.toString().getBytes("ISO8859_1"),"gb2312");
之后调用response.getBytes()将response发送到请求代理的客户端。
我的想法如下:
可能是在response = new String(buf.toString().getBytes("ISO8859_1"),"gb2312");上面出现了一些问题,因为客户发出gif请求的时候我却发送中文字符串给客户,但是response = new String(buf.toString().getBytes是不是已经将字符串转换成字节流了呢?
我试图将response = new String(buf.toString().getBytes("ISO8859_1"),"gb2312");替换成response = new String(buf.toString().getBytes())却无法显示中文了,页面出现的都是乱码,是不是我要区分一下客户端的请求是不是gif,我该如何做?
while((i = in.read()) != -1) {
char chr = (char)i;
buf.append(chr);
if(buf.toString().endsWith("")) {
break;
}
}
out.close();in.close();
response = new String(buf.toString().getBytes("ISO8859_1"),"gb2312");
之后调用response.getBytes()将response发送到请求代理的客户端。
我的想法如下:
可能是在response = new String(buf.toString().getBytes("ISO8859_1"),"gb2312");上面出现了一些问题,因为客户发出gif请求的时候我却发送中文字符串给客户,但是response = new String(buf.toString().getBytes是不是已经将字符串转换成字节流了呢?
我试图将response = new String(buf.toString().getBytes("ISO8859_1"),"gb2312");替换成response = new String(buf.toString().getBytes())却无法显示中文了,页面出现的都是乱码,是不是我要区分一下客户端的请求是不是gif,我该如何做?
|
看看这个,我试过好用!
http://www-900.ibm.com/developerWorks/cn/java/l-javaproxy/index.shtml
http://www-900.ibm.com/developerWorks/cn/java/l-javaproxy/index.shtml
|
用
char[] temp = new char[1];
while (reader.read(temp) != -1) {
buf.append(new String(temp));
}
试试看
char[] temp = new char[1];
while (reader.read(temp) != -1) {
buf.append(new String(temp));
}
试试看
|
response = new String(buf.toString().getBytes)
石将你的页面中的所有数据都转换成了流形式,你需要区分对待。首先要分理出你的gif那段流,然后将这段流的contentType设为application/gif格式,输出它。
石将你的页面中的所有数据都转换成了流形式,你需要区分对待。首先要分理出你的gif那段流,然后将这段流的contentType设为application/gif格式,输出它。
|
response = new String(buf.toString().getBytes("ISO8859_1"),"gb2312");
response是包含页面所有内容的一个流,你需要将这个流分开处理,提出图片的那一块,设对contentType类型,application/gif;你可以将整个response用out输出,然后看它是怎么个结构,然后将它分离出来。
response是包含页面所有内容的一个流,你需要将这个流分开处理,提出图片的那一块,设对contentType类型,application/gif;你可以将整个response用out输出,然后看它是怎么个结构,然后将它分离出来。
|
我曾经写过一个,很简单的,直接把请求和回复转发就可以了,为什么要有这么多复杂处理呢?