1、創建回調接口
1
package pattern;
2
3
/**
4
*描述:回調接口
5
* @author xuzhiwei
6
*/
7
public interface ICallBack {
8
public void onSuccess(String content);
9
public void onFailure(String errorMsg);
10
}

2

3

4

5

6

7

8

9

10

2、創建調用http請求的類,用于向服務器發送請求,服務器內部進行http請求處理的功能。
1
package pattern;
2
3
import java.io.IOException;
4
import java.net.HttpURLConnection;
5
import java.net.MalformedURLException;
6
import java.net.URL;
7
import java.util.logging.Level;
8
import java.util.logging.Logger;
9
10
/**
11
*
12
* @author xuzhiwei
13
*/
14
public abstract class Request {
15
public void onSuccess(String resposeBody){}
16
public void onFailure(String exceptionMsg){}
17
18
public Request(){}
19
20
public void execute(String path){
21
try {
22
URL url = new URL(path);
23
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
24
25
conn.setConnectTimeout(3*1000);
26
conn.setReadTimeout(2000);
//返回請求結果
27
int responseCode = conn.getResponseCode();
28
onResponse(responseCode);
29
} catch (MalformedURLException ex) {
30
onFailure(ex.getMessage());
31
} catch (IOException ex) {
32
onFailure(ex.getMessage());
33
}
34
}
35
/**響應處理**/
36
public void onResponse(int code){
37
if(code == 200){ //狀態碼:200響應請求成功!調用
onSuccess 方法
38
onSuccess("發送請求成功!");
39
}else{
40
onFailure("發送請求失??!請求代碼:"+code);
41
}
42
}
43
44
}
45

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

3、創建請求控制類





































4、創建測試類進行測試
1
package pattern;
2
/**
3
*
4
* @author xuzhiwei
5
*/
6
public class TestCallBack {
7
8
public static void main(String[] args) {
9
10
Ranking ranking = new Ranking("http://localhost/net/index.php");
11
12
ranking.list(new ICallBack() {
13
14
@Override
15
public void onSuccess(String content) {
16
complete(content);
17
}
18
19
@Override
20
public void onFailure(String errorMsg) {
21
complete(errorMsg);
22
}
23
});
24
}
25
26
private static void complete(String msg)
27
{
28
System.out.println("------請求完成---->"+msg);
29
}
30
}
31

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

以上就是整個回調函數的處理過程了。第一次寫blog,請大家多多指教。