A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邢勇 黑马帝   /  2011-9-21 13:14  /  2611 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

照着视频编写了GetGoogle类,但是日文可以正常返回,中文就不行了,然后我把“http://www.google.com”换成“http://www.baidu.com”就没问题。
[code=java]import java.net.*;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.io.*;

public class GetGoogle {

        public static void main(String[] args) {
                // TODO Auto-generated method stub
                try {
                        System.out.println("获取日文页面");
                        getContentByLanguage("ja");
                        System.out.println("\n");
                        
                        System.out.println("获取中文页面");
                        getContentByLanguage("zh-cn");
                } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
        }
        
        public static void getContentByLanguage(String country) throws Exception{
                URL urlGoogle = new URL("http://www.google.com");
                HttpURLConnection googleConnection = (HttpURLConnection)urlGoogle.openConnection();
                googleConnection.setRequestProperty("Accept-Language",country);

               
                Map requests = googleConnection.getRequestProperties();
                Set reqField = requests.keySet();
                Iterator itrReq = reqField.iterator();
                while(itrReq.hasNext()){
                        String field = (String) itrReq.next();
                        System.out.println(field + ":" +
                                        googleConnection.getRequestProperty(field));
                }

                Map responses = googleConnection.getHeaderFields();
                Set resFields = responses.keySet();
                Iterator itrRes = resFields.iterator();
                while(itrRes.hasNext()){
                        String field = (String) itrRes.next();
                        System.out.println(field + ":" +
                                        googleConnection.getHeaderField(field));
                }
               
                InputStream is = googleConnection.getInputStream();
                BufferedReader br = new BufferedReader(new InputStreamReader(is));
                String strLine = null;
                while((strLine = br.readLine()) != null){
                        System.out.println(strLine);
                }
                br.close();
                googleConnection.disconnect();
        
        }

}[/code]

错误信息如下:
获取中文页面
Accept-Language:zh-cn
java.net.ProtocolException: Server redirected too many  times (20)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at sun.net.www.protocol.http.HttpURLConnection$6.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.net.www.protocol.http.HttpURLConnection.getChainedException(Unknown Source)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
        at GetGoogle.getContentByLanguage(GetGoogle.java:48)
        at GetGoogle.main(GetGoogle.java:17)
Caused by: java.net.ProtocolException: Server redirected too many  times (20)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
        at sun.net.www.protocol.http.HttpURLConnection.getHeaderFields(Unknown Source)
        at GetGoogle.getContentByLanguage(GetGoogle.java:39)
        ... 1 more

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

2 个回复

倒序浏览
黑马网友  发表于 2011-9-21 13:48:04
沙发

回复 楼主 的帖子

经测试,[url]www.google.com[/url]和楼主一样,是不成功的。
但是,使用[url]www.google.cn[/url]则能够通过。
至于具体原因就不太清楚咯。
楼主可以好好分析分析。
回复 使用道具 举报
黑马网友  发表于 2011-9-23 11:05:19
藤椅
"至于具体原因就不太清楚咯。
楼主可以好好分析分析。 "
太隐晦了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马