package org.aisen.weibo.sina.support.sdk;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.Response;
import org.aisen.android.common.context.GlobalContext;
import org.aisen.android.common.setting.Setting;
import org.aisen.android.common.utils.Logger;
import org.aisen.android.common.utils.SystemUtils;
import org.aisen.android.network.http.HttpConfig;
import org.aisen.android.network.http.IHttpUtility;
import org.aisen.android.network.http.Params;
import org.aisen.android.network.task.TaskException;
import org.aisen.weibo.sina.support.bean.PictureSize;
import org.aisen.weibo.sina.support.sqlit.SinaDB;
import java.net.HttpURLConnection;
/**
* Created by wangdan on 16/2/20.
*/
public class PictureSizeHttpUtility implements IHttpUtility {
private static final String TAG = PictureSizeHttpUtility.class.getSimpleName();
@Override
public <T> T doGet(HttpConfig config, Setting action, Params urlParams, Class<T> responseCls) throws TaskException {
if (GlobalContext.getInstance() == null || SystemUtils.getNetworkType(GlobalContext.getInstance()) == SystemUtils.NetWorkType.none)
return null;
String url = urlParams.getParameter("path");
PictureSize size = new PictureSize();
size.setUrl(url);
Request request = new Request.Builder().url(url).build();
try {
Response response = GlobalContext.getOkHttpClient().newCall(request).execute();
if (!(response.code() == HttpURLConnection.HTTP_OK || response.code() == HttpURLConnection.HTTP_PARTIAL)) {
throw new TaskException(String.valueOf(TaskException.TaskError.failIOError));
}
else {
// 图片大小
String header = response.header("Content-Length");
int length = Integer.parseInt(header);
size.setSize(length);
SinaDB.getDB().insert(null, size);
Logger.d(TAG, String.format("图片大小 %s", String.valueOf(size.getSize())));
}
} catch (Exception e) {
throw new TaskException(String.valueOf(TaskException.TaskError.failIOError));
}
return (T) size;
}
@Override
public <T> T doPost(HttpConfig config, Setting action, Params urlParams, Params bodyParams, Object requestObj, Class<T> responseCls) throws TaskException {
return null;
}
@Override
public <T> T doPostFiles(HttpConfig config, Setting action, Params urlParams, Params bodyParams, MultipartFile[] files, Class<T> responseCls) throws TaskException {
return null;
}
}