我想写这样的一个程序,就是首先连接指定的Ip地址,然后进行连接,连接成功后,开始向服务器发送命令,该怎么做呢?用HttpTypeConnect好像是建立连接的时候,直接就可以发送命令了。但是我有好几个不同的命令需要发送,而且需要从服务器的html页面取得返回信息。带怎么写呢?最好有示例代码。谢谢。下面是我写的一部分。
import java.io.*;
import java.net.*;
import java.util.*;
public class webhtwvnl { /**
 * @param args
 */
public webhtwvnl(){
try{
URL url=new URL("http://202.197.65.88/nosuchfile.htw");//此部分后面的“nosuchfile.htw”只是发送的一个命令,我还需要发送几个不同的命令
URLConnection connection=url.openConnection();
HttpURLConnection httpcn=(HttpURLConnection)connection;
try{
httpcn.setRequestMethod("GET");
}
catch(ProtocolException e){
System.out.println(e.getMessage());
}

System.out.println(httpcn.getErrorStream());
System.out.println(httpcn.getRequestMethod());
System.out.println(httpcn.getResponseCode());
System.out.println(httpcn.getResponseMessage());

}
catch(IOException e){
e.printStackTrace();
    System.out.println(e.getMessage());
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
      webhtwvnl wht=new webhtwvnl();
}}

解决方案 »

  1.   

    答:用URLConnection或HttpURLConnection都可以向服务器以GET方式或POST方式提交FORM格式的数据,并返回结果。楼主的意思是什么呢?你说的命令是什么含义呢?能否先举个你的命令的例子。因为最终都要化为GET或POST方式提交FORM格式的数据。(我想,这个FORM格式的数据可能就是你的命令及其参数吧?)
      

  2.   

    是这样,我的命令格式是“http://www.targetIp.com/nosuchfile.htw",后面的“nosuchfile.htw”这个位置是变量,有不同的命令,比如下一个就是“http://www.tartgetIp.com/null.htw?CiWebhitsfile=/default.asp%20&%20CiRestriction=none%20&%20&CiHiliteType=full".我想把"http://www.tartgetIp.com/"作为所有命令的公用部分,而后面的都是变得,然后命令发送过去后,我需要根据服务器返回的页面寻找关键字,比如对应于第一个页面,寻找返回页面中包含有“QUERY_STRING 的格式无效”这几个关键字
      

  3.   

    答:这样就知道了楼主的目的了。这很方便啊。你将公共部分分出如:
    String base="http://www.tartgetIp.com/";
    然后:每一个命令的可变部分当时运行时生成出来:如:
    String comm1="null.htw?"+命令参数
    或 String comm2="nosuchfile.htw?"+命令参数
    等等命令
    最后形成URL,即:URL url=new URL(base+comm1);利用url发出命令并取回结果。以上仅供你参考