利用java的HttpURLConnection和Servlet通信 (轉(zhuǎn))
這幾天測試Servlet通信,寫了一個小程序,通過從Properties文件中讀取設(shè)定信息,構(gòu)造Http頭,向Servlet發(fā)Post請求,并且接收Servlet的結(jié)果,下面給出程序的大概結(jié)構(gòu): 1
import java.net.*;
2
import java.io.*;
3
4
public 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"); //構(gòu)造好這個URL對象,參數(shù)就是你要通信的servlet地址,實際測試的時候,這個URL可以從Properties文件中取得,以增加靈活性
11
conn = (HttpURLConnection)url.openConnection(); //打開,創(chuàng)建Connection對象
12
13
conn.setRequestMethod("POST"); //設(shè)定請求方式為POST
14
conn.setDoOutput(true); //一定要設(shè)為true,因為要發(fā)送數(shù)據(jù)
15
16
//下面開始設(shè)定Http頭
17
conn.setRequestProperty("Content-Type","multipart/form-data; boundary=Bounday---");
18
conn.setRequestProperty("Cache-Control","no-cache");
19

.
20
21
// 傳送送據(jù)
22
OutputStream buf = conn.getOutoutStream();
23
buf = new BufferedOutputStream(buf);
24
25
OutputStreamWriter out = new OutputStreamWriter (buf);
26
out.write("這里是要傳送的數(shù)據(jù)");
27
//比方說如下的格式,當然這是自己規(guī)定的格式,這些都可以從配置文件中設(shè)定,然后讀取
28
//Bounday---
29
//Content-Disposition: form-data; name="testRequestHeader"
30
// Data = aabbccddeeffgghh
31
//--Bounday---
32
out.flush(); //這個一定要
33
out.clost();
34
35
//接收數(shù)據(jù)
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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19



20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

posted on 2007-09-06 10:04 都市淘沙者 閱讀(3199) 評論(0) 編輯 收藏 所屬分類: Java Basic/Lucene/開源資料