package com.lzy.demo.okgo;
import android.os.Bundle;
import android.view.View;
import com.lzy.demo.R;
import com.lzy.demo.base.BaseDetailActivity;
import com.lzy.demo.callback.DialogCallback;
import com.lzy.demo.model.LzyResponse;
import com.lzy.demo.model.ServerModel;
import com.lzy.demo.utils.Urls;
import com.lzy.okgo.OkGo;
import org.json.JSONObject;
import java.util.HashMap;
import butterknife.ButterKnife;
import butterknife.OnClick;
import okhttp3.Call;
import okhttp3.MediaType;
import okhttp3.Response;
public class PostTextActivity extends BaseDetailActivity {
@Override
protected void onActivityCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_post_text);
ButterKnife.bind(this);
setTitle("上传大文本Json数据");
}
@Override
protected void onDestroy() {
super.onDestroy();
//Activity销毁时,取消网络请求
OkGo.getInstance().cancelTag(this);
}
@OnClick(R.id.postJson)
public void postJson(View view) {
HashMap<String, String> params = new HashMap<>();
params.put("key1", "value1");
params.put("key2", "这里是需要提交的json格式数据");
params.put("key3", "也可以使用三方工具将对象转成json字符串");
params.put("key4", "其实你怎么高兴怎么写都行");
JSONObject jsonObject = new JSONObject(params);
OkGo.post(Urls.URL_TEXT_UPLOAD)//
.tag(this)//
.headers("header1", "headerValue1")//
// .params("param1", "paramValue1")// 这里不要使用params,upJson 与 params 是互斥的,只有 upJson 的数据会被上传
.upJson(jsonObject)//
.execute(new DialogCallback<LzyResponse<ServerModel>>(this) {
@Override
public void onSuccess(LzyResponse<ServerModel> responseData, Call call, Response response) {
handleResponse(responseData.data, call, response);
}
@Override
public void onError(Call call, Response response, Exception e) {
super.onError(call, response, e);
handleError(call, response);
}
});
}
@OnClick(R.id.postString)
public void postString(View view) {
OkGo.post(Urls.URL_TEXT_UPLOAD)//
.tag(this)//
.headers("header1", "headerValue1")//
// .params("param1", "paramValue1")// 这里不要使用params,upString 与 params 是互斥的,只有 upString 的数据会被上传
.upString("这是要上传的长文本数据!")//
// .upString("这是要上传的长文本数据!", MediaType.parse("application/xml"))// 比如上传xml数据,这里就可以自己指定请求头
.execute(new DialogCallback<LzyResponse<ServerModel>>(this) {
@Override
public void onSuccess(LzyResponse<ServerModel> responseData, Call call, Response response) {
handleResponse(responseData.data, call, response);
}
@Override
public void onError(Call call, Response response, Exception e) {
super.onError(call, response, e);
handleError(call, response);
}
});
}
@OnClick(R.id.postBytes)
public void postBytes(View view) {
OkGo.post(Urls.URL_TEXT_UPLOAD)//
.tag(this)//
.headers("header1", "headerValue1")//
// .params("param1", "paramValue1")// 这里不要使用params,upBytes 与 params 是互斥的,只有 upBytes 的数据会被上传
.upBytes("这是字节数据".getBytes())//
.execute(new DialogCallback<LzyResponse<ServerModel>>(this) {
@Override
public void onSuccess(LzyResponse<ServerModel> responseData, Call call, Response response) {
handleResponse(responseData.data, call, response);
}
@Override
public void onError(Call call, Response response, Exception e) {
super.onError(call, response, e);
handleError(call, response);
}
});
}
}