String host = "2shou.domain.cn";
Socket connection= new Socket(host, 80);
String GET = "GET / test.asp HTTP/1.0\r\n\r\n";
out.write(GET);我想要的资源是:http://2shou.domain.cn/test.asp
可实际上却得到的是:http://ip/test.asp  (ip为2shou.domain.cn解析到的ip,即它实际上是把http://www.domain.cn/test.asp返回给我,这当然不行了,怎么来定位二级域名的资源呢)请问有什么办法可以解决这个问题!!!

解决方案 »

  1.   

    use URLConnection instead!
    with
      

  2.   

    看看这个
    http://www.douzhe.com/article/data/37/796.html
      

  3.   


    import java.net.*;
    import java.io.*;public class Test {
        public static void main(String[] args) throws Exception{
        
         URL url = new URL("http://sports.163.com"); 
         URLConnection uc = url.openConnection();
        
        
         InputStream ins  = uc.getInputStream();
         BufferedReader br = new BufferedReader(new InputStreamReader(ins));
            String s = br.readLine();
            while(s!=null) {
             System.out.println(s);
             s = br.readLine();
            }
        }   
    }
    ///////////////////////
    这是刚刚写的一个程序,希望有用,URLConection封装了对Socket的底层操作
    能不能满足要求
      

  4.   

    首先很感谢大家的关注,但是有两个问题:
    1。如何处理编码的问题?得到的返回信息不能识别中文
    2。怎么向URL传递参数(包括post和get类型的参数)
      

  5.   

    1.你的系统环境如果是中文的,应该可以识别中文,否则需要设置相应的环境变量。
    2.需要向url传递的参数,直接拼接在url上就可以了,就象你在IE的地址栏输入的一样。
      

  6.   

    我写的那个程序可以显示中文,你运行一下看看或者在io操作中加入具体的编码设置,可以解决get型的参数直接 像这样 "http://www.baidu.com/s?wd=ff&cl=3" 写在url后面就可以了