NetworkThread.java
2.75 KB
1
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
package com.example.app_10p5;
import android.os.AsyncTask;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import javax.net.ssl.HttpsURLConnection;
/**
* Created by beaus on 30/04/2016.
*/
public class NetworkThread extends AsyncTask<Void, Void, JSONObject> {
public ASyncResponse delegate = null;
private URL mUrl;
private HashMap<String, String> mParam;
NetworkThread(URL url, HashMap<String, String> param){
mUrl = url;
mParam = param;
}
@Override
protected void onPreExecute() {
/**
* show dialog
*/
super.onPreExecute();
}
@Override
protected JSONObject doInBackground(Void ... params) {
/**
* Do network related stuff
* return string response.
*/
JSONObject json = new JSONObject();
try {
HttpURLConnection httpCo = (HttpURLConnection) mUrl.openConnection();
httpCo.setDoOutput(true);
httpCo.setConnectTimeout(20000);
httpCo.setReadTimeout(20000);
httpCo.connect();
boolean debut = true;
StringBuilder buffer = new StringBuilder();
for (Map.Entry<String, String> entry : mParam.entrySet()) {
if(debut){
debut = false;
}
else
{
buffer.append("&");
}
buffer.append(entry.getKey());
buffer.append("=");
buffer.append(entry.getValue());
}
OutputStreamWriter wr = new OutputStreamWriter(httpCo.getOutputStream());
wr.write(buffer.toString());
wr.flush();
String response = "";
if (httpCo.getResponseCode() == HttpsURLConnection.HTTP_OK) {
String line;
BufferedReader br = new BufferedReader(new InputStreamReader(httpCo.getInputStream()));
while ((line = br.readLine()) != null) {
response += line;
}
} else {
response = "{\"status\":" + httpCo.getResponseCode() + "}";
}
json = new JSONObject(response);
httpCo.disconnect();
} catch (Throwable t) {
System.out.println("Exception: " + t.toString());
}
return json;
}
@Override
protected void onPostExecute(JSONObject result) {
/**
* update ui thread and remove dialog
*/
super.onPostExecute(result);
delegate.processFinish(result);
}
}