package com.kcode.lib.net;
import com.kcode.lib.bean.VersionModel;
import com.kcode.lib.log.L;
import org.json.JSONException;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
/**
* Created by caik on 2017/3/8.
*/
public class CheckUpdateTask extends Thread {
private static final String TAG = "CheckUpdateTask";
private Callback mCallBack;
private String mCheckUpdateUrl;
public CheckUpdateTask(String checkUpdateUrl, Callback callBack) {
mCheckUpdateUrl = checkUpdateUrl;
this.mCallBack = callBack;
}
@Override
public void run() {
HttpURLConnection connection = null;
try {
URL url = new URL(mCheckUpdateUrl);
if (mCheckUpdateUrl.startsWith("https://")) {
TrustAllCertificates.install();
}
connection = (HttpURLConnection) url.openConnection();
InputStream in = new BufferedInputStream(connection.getInputStream());
String data = read(in);
L.d(TAG, "result:" + data);
VersionModel model = new VersionModel();
try {
model.parse(data);
mCallBack.callBack(model);
} catch (JSONException e) {
e.printStackTrace();
mCallBack.callBack(null);
}
} catch (MalformedURLException e) {
e.printStackTrace();
mCallBack.callBack(null);
} catch (IOException e) {
e.printStackTrace();
mCallBack.callBack(null);
} finally {
if (connection != null) {
connection.disconnect();
}
}
}
private static String read(final InputStream in) throws IOException {
final ByteArrayOutputStream out = new ByteArrayOutputStream();
int b;
while((b = in.read()) != -1) {
out.write(b);
}
return out.toString();
}
public interface Callback {
void callBack(VersionModel model);
}
}