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); } }); } }