Dict.CN 在线词典, 英语学习, 在线翻译

都市淘沙者

荔枝FM Everyone can be host

统计

留言簿(23)

积分与排名

优秀学习网站

友情连接

阅读排行榜

评论排行榜

利用java的HttpURLConnection和Servlet通信 (转)

这几天测试Servlet通信,写了一个小程序,通过从Properties文件中读取设定信息,构造Http头,向Servlet发Post请求,并且接收Servlet的结果,下面给出程序的大概结构:
 1import java.net.*;
 2import java.io.*;
 3
 4public class testPost {
 5    public static void main() {
 6        URL url = null;
 7        HttpURLConnection conn = null;
 8        
 9        try {
10            url = new URL("http://localhost/projectname/servletname");      //构造好这个URL对象,参数就是你要通信的servlet地址,实际测试的时候,这个URL可以从Properties文件中取得,以增加灵活性
11            conn = (HttpURLConnection)url.openConnection();                 //打开,创建Connection对象
12
13            conn.setRequestMethod("POST");                                         //设定请求方式为POST
14            conn.setDoOutput(true);                                                        //一定要设为true,因为要发送数据
15
16            //下面开始设定Http头
17           conn.setRequestProperty("Content-Type","multipart/form-data; boundary=Bounday---");
18           conn.setRequestProperty("Cache-Control","no-cache");
19           .
20
21         //  传送送据
22          OutputStream buf = conn.getOutoutStream();
23          buf = new BufferedOutputStream(buf);
24
25          OutputStreamWriter out = new  OutputStreamWriter (buf);
26          out.write("这里是要传送的数据");
27          //比方说如下的格式,当然这是自己规定的格式,这些都可以从配置文件中设定,然后读取
28          //Bounday---
29          //Content-Disposition: form-data; name="testRequestHeader"
30          //  Data = aabbccddeeffgghh
31          //--Bounday---
32          out.flush();                                                    //这个一定要
33          out.clost();
34
35        //接收数据
36        InputStream in = conn.getInputStream();
37        in = new BufferedOutputStream(buf);
38        Reader rData = new InputStreamReader(in);
39
40        int c;
41        
42        System.out.println("=====================Result==========================");
43        while((c=rData.read()) != -1)
44               System.out.print((char)c);
45        System.out.println("===================================================");
46        
47        in.close();
48        }
 catch (Exception e) {
49            e.printStackTrace();
50        }
 finally {
51        }

52    }

53}

54

posted on 2007-09-06 10:04 都市淘沙者 阅读(3193) 评论(0)  编辑  收藏 所属分类: Java Basic/Lucene/开源资料


只有注册用户登录后才能发表评论。


网站导航: