use of cn.jeesoft.qa.libcore.http.QARequestParams in project QuickAndroid by ImKarl.
the class MainActivity method testHttp.
/**
* 测试HTTP请求
*/
public void testHttp(View view) {
String url = "http://www.baidu.com/s";
QARequestParams params = new QARequestParams();
params.putParam("wd", "android");
QAHttpCallback<String> listener = new QASimpleHttpCallback<String>() {
@Override
public void onProgress(String url, long current, long total, QAHttpAction action) {
super.onProgress(url, current, total, action);
QAToast.show(MainActivity.this, "onProgress | " + action + " | " + current + "/" + total);
}
@Override
public void onSuccessNet(String url, String data) {
QALog.e(url, "onSuccessNet " + data);
}
@Override
public void onSuccessCache(String url, String data) {
QALog.e(url, "onSuccessCache " + data);
}
};
QACore.getHttp().load(QAHttpMethod.GET, url, params, listener);
}
use of cn.jeesoft.qa.libcore.http.QARequestParams in project QuickAndroid by ImKarl.
the class MainActivity method testHttpFile.
/**
* 测试HTTP请求(File)
*/
public void testHttpFile(final View view) {
String url = "https://github.com/alafighting/QuickAndroid/archive/master.zip";
QARequestParams params = new QARequestParams();
params.setTargetFile(new File(QACore.file.getUsableDir(getPackageName()), "QuickAndroid-master.zip"));
QAHttpCallback<File> listener = new QASimpleHttpCallback<File>() {
@Override
public void onProgress(String url, long current, long total, QAHttpAction action) {
super.onProgress(url, current, total, action);
QAToast.show(MainActivity.this, "onProgress | " + action + " | " + (total != -1 ? QAStringUtils.getDecimal(100D * current / total, 2) : (QAStringUtils.getDecimal(1D * current / 1024, 2) + "kb")));
}
@Override
public void onSuccessNet(String url, File data) {
QALog.e(url, "onSuccessNet", data);
}
@Override
public void onSuccessCache(String url, File data) {
QALog.e(url, "onSuccessCache", data);
}
};
QACore.getHttp().load(QAHttpMethod.GET, url, params, listener);
}
use of cn.jeesoft.qa.libcore.http.QARequestParams in project QuickAndroid by ImKarl.
the class OkHttp method createRequest.
private <T> Request createRequest(QAHttpMethod method, String url, QARequestParams params, final QAHttpCallback<T> listener) {
if (method == null) {
method = QAHttpMethod.GET;
}
final String finalUrl = url;
if (method == QAHttpMethod.GET) {
url = parseGetUrl(url, params != null ? params.getParams() : null);
params = null;
} else {
if (params == null) {
params = new QARequestParams();
}
}
Request.Builder builder = new Request.Builder();
try {
builder.url(url);
} catch (final Exception e) {
sendFailedCallback(finalUrl, e, listener);
return null;
}
// 强制使用缓存
builder.cacheControl(CacheControl.FORCE_CACHE);
// header
Headers.Builder headerBuilder = new Headers.Builder();
if (params != null && !params.getHeaders().isEmpty()) {
for (Entry<String, String> entry : params.getHeaders().entrySet()) {
headerBuilder.add(entry.getKey(), entry.getValue());
}
}
builder.headers(headerBuilder.build());
// param
RequestBody requestBody = null;
if (params != null) {
if (!TextUtils.isEmpty(params.getBody())) {
requestBody = RequestBody.create(MEDIA_TYPE_TEXT, params.getBody());
} else {
try {
MultipartBuilder paramBuilder = new MultipartBuilder();
if (params != null && !params.getParams().isEmpty()) {
for (Entry<String, List<Part>> entry : params.getParams().entrySet()) {
String name = entry.getKey();
List<Part> parts = entry.getValue();
if (parts != null && !parts.isEmpty()) {
for (Part part : parts) {
paramBuilder.addPart(part.header(), part.body());
}
}
}
}
requestBody = paramBuilder.build();
} catch (IllegalStateException e) {
requestBody = new FormEncodingBuilder().build();
}
}
}
builder.method(method.name(), requestBody == null ? null : new ProgressRequestBody(requestBody, new OnProgressListener() {
@Override
public void onProgress(long currentBytes, long contentLength) {
// 上传进度
sendProgressCallback(finalUrl, currentBytes, contentLength, QAHttpAction.REQUEST, listener);
}
}));
final Request request = builder.build();
mOnProgressListeners.put(request, new OnProgressListener() {
@Override
public void onProgress(long currentBytes, long contentLength) {
// 下载进度
sendProgressCallback(finalUrl, currentBytes, contentLength, QAHttpAction.RESPONSE, listener);
}
});
return request;
}
use of cn.jeesoft.qa.libcore.http.QARequestParams in project QuickAndroid by ImKarl.
the class MainActivity method testHttpParser.
/**
* 测试HTTP请求(Parser)
*/
public void testHttpParser(final View view) {
String url = "http://www.kuaidi100.com/query";
QARequestParams params = new QARequestParams();
params.putParam("type", "快递公司代号");
params.putParam("postid", "快递单号");
/**
* 快递单信息
*/
class Express implements QAJsonParser<Express> {
int status;
String message;
@Override
public Express parser(QAJson data) {
QAJsonObject root = (QAJsonObject) data;
this.status = root.getInt("status");
this.message = root.getString("message");
return this;
}
@Override
public String toString() {
return "Express [status=" + status + ", message=" + message + "]";
}
}
QAHttpCallback<Express> listener = new QASimpleHttpCallback<Express>() {
@Override
public void onProgress(String url, long current, long total, QAHttpAction action) {
super.onProgress(url, current, total, action);
QAToast.show(MainActivity.this, "onProgress | " + action + " | " + current + "/" + total);
}
@Override
public void onSuccessNet(String url, Express data) {
QALog.e(url, "onSuccessNet", data);
}
@Override
public void onSuccessCache(String url, Express data) {
QALog.e(url, "onSuccessCache", data);
}
};
QACore.getHttp().load(QAHttpMethod.GET, url, params, new Express(), listener);
}
Aggregations