我现在想访问  http://localhost:8080/ab/test.jsp?a=a&b=b
除了用URL来直接访问http服务器外,用socket如何实现呢?
建立socket的时候只能  Socket socket=new Socket("127.0.0.1",8080);
如何才能进入 /ab/test.jsp呢?

解决方案 »

  1.   

    看看http协议客户端的实现.建立好到localhost:8080的socket后,基本上应该发送:"GET /ab/test.jsp?a=a&b=b"下面是"\r\n"还是"\n"的?
    还有其他的一些信息(不太重要).
      

  2.   

    URL是封装了协议,不必直接用socket去访问,具体可以看http协议
      

  3.   

    如果只是访问HTTP的某个URL,你不一定非得自己实现HTTP协议通讯啊。private String connectionServer(String urlAddress, String query)
    {
    if(logger.isDebugEnabled())
    {
    logger.debug("URL: " + urlAddress);
    logger.debug("QUERY: " + query);
    }
    try
    {
    URL url = new URL(urlAddress);
    URLConnection connection = url.openConnection();
    if(query != null && !query.equals(""))
    {
    connection.setDoOutput(true);
    connection.connect(); OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(),
    "GB2312"); out.write(query);
    out.flush();
    out.close();
    }
    else
    {
    connection.connect();
    } InputStream input = connection.getInputStream();
    java.io.BufferedReader reader = new java.io.BufferedReader(
    new java.io.InputStreamReader(input));
    String readLine = "";
    String xmlString = "";
    while((readLine = reader.readLine()) != null)
    {
    xmlString += readLine;
    }
    return xmlString;
    }
    catch(MalformedURLException exp)
    {
    logger.error(exp);
    }
    catch(IOException exp)
    {
    logger.error(exp);
    }
    }