Retrofit进行post提交json数据

1:先看一看xutils3的提交代码

             String account = editText1.getText().toString();
                String password = editText2.getText().toString();
                JSONObject js_request = new JSONObject();//服务器需要传参的json对象
                try {
                    js_request.put("account", account);//添加相应键值对
                    js_request.put("password", password);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                RequestParams requestParams = new RequestParams(LOGIN_URL);
                requestParams.setAsJsonContent(true);
                requestParams.setBodyContent(js_request.toString());
                x.http().post(requestParams, new Callback.CommonCallback<String>() {
                    @Override
                    public void onSuccess(String result) {
                        System.out.println("**ok"+result);
                        try {
                            JSONObject object = new JSONObject(result);
                            String code = object.getString("code");
                            if (code.equals("1")) {
                                // button.setClickable(false);
                                //登录成功后获得id

                            } else {
                                // 登陆失败
                            }

                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                    @Override
                    public void onError(Throwable ex, boolean isOnCallback) {
                        System.out.println("errot");
                    }

                    @Override
                    public void onCancelled(CancelledException cex) {
                    }
                    @Override
                    public void onFinished() {
                    }
                });
            }

2:Retrofit提交过程

2.1 登陆 urL

  public static String LOGIN_URL = "http://114.xx.xxx.xx:8088/vdyweb/ws/rest/Login";

  

 interface APIStore {
    @Headers({"Content-Type: application/json","Accept: application/json"})//需要添加头
    @POST ("vdyweb/ws/rest/Login")
    Call<ResponseBody>getMessage(@Body RequestBody info);   // 请求体味RequestBody 类型
} 
public class Info {
    String account;
    String password;

    public Info(String account, String password) {
        this.account = account;
        this.password = password;
    }
}

 

public class MainActivity extends AppCompatActivity {
    public static String BASE_LOGIN_URL = "http://114.xx.xxx.xx:8088/";
    Retrofit retrofit;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Info info=new Info("test","123456");   /*** 利用Gson 将对象转json字符串*/
        Gson gson=new Gson();
        String obj=gson.toJson(info);
        retrofit=new Retrofit.Builder().baseUrl(BASE_LOGIN_URL).build();
        RequestBody body=RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"),obj);
        final APIStore login = retrofit.create(APIStore.class);
        retrofit2.Call<ResponseBody> data = login.getMessage(body);
        data.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(retrofit2.Call<ResponseBody> call, Response<ResponseBody> response) {
                Log.d(TAG, "onResponse: --ok--"+response.body());
                try {
                    Log.d(TAG, "onResponse: --ok--"+response.body().string());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            @Override
            public void onFailure(retrofit2.Call<ResponseBody> call, Throwable t) {
                Log.d(TAG, "onResponse: --err--"+t.toString());
            } });} } 

3:添加get请求

apiStore加

    @GET("vdyweb/ws/rest/device/getOwnerDevice/2/2/20")
    Call<ResponseBody>getMessage2();

  

 retrofit2.Call<ResponseBody>data1=login.getMessage2();
        data1.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                try {
                    Log.d(TAG, "onResponse: --ok--"+response.body().string());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {

            }
        });

  

  

 

 

 

时间: 2024-11-22 22:30:23

Retrofit进行post提交json数据的相关文章

C# 用POST提交json数据

public void GetResponse(string url, string json) { Encoding encoding = Encoding.UTF8; byte[] data = encoding.GetBytes(json); //此处为为http请求url var uri = new Uri(url); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); //用此方法可以添加标准或非标准http

Jquery-ajax()方法提交json数据

1.ajax()提交json数据代码 var strJson = getStrPayJson(); $.ajax({ type: "POST", url: "/usercenter/paycoupon", contentType: "application/json", dataType: "json", data: JSON.stringify({ "payUsers": strJson }), succ

前端ajax用post方式提交json数据给后端时,网络报错 415

项目框架:spring+springmvc+mybatis 问题描述:前端ajax用post方式提交json数据给后端时,网络报错 415 前端异常信息:Failed to load resource: the server responded with a status of 415 (Unsupported Media Type) 后端异常信息:无 报错原因:缺少jackson包 类似问题注意点: springmvc添加配置.注解: pom.xml添加jackson包引用: Ajax请求时没

通过Ajax进行Post提交Json数据的方法

下面pk10平台出租就为大家分享一篇qq:185 198 884通过Ajax进行Post提交Json数据的方法,具有很好的参考价值,希望对大家有所帮助.一起跟随ws平台出租过来看看吧js代码:1 $.ajax({2 type : "POST", 3 url: js_path + "/maintainAdd/add", 4 data : JSON.stringify(madd_data.editMaintain), 5 contentType : "appl

ajax提交json数据到后端C#解析

本文链接:https://blog.csdn.net/qq_22103321/article/details/78015920 前端提交json数据 $.ajax({ type: "post", url: url,//请求地址 data: JSON.stringify(data),//json数据,如{"key1":"value1","key2":"value2"} dataType: "json

导出excel时,以form方式提交json数据

今天在写项目时写到一个excel的导出,开始想用ajax请求后台后导出,但发现ajax会有返回值,而且ajax无法直接输出文件,而后台的excel导出方法已经封装好,不方便修改. 就改用了提交的方式form,但form提交,表格分页用的是jquerytable,我需要将一些jquerytable的一些参数传到后台,但这些数据已经是json数据,如果我直接放在input中提交到后台在解析参数会很麻烦,所以就想将json数据转为form方式提交. js //导出 function exportExc

jQuery提交Json数据到Webservice,并接收返回的Json数据

jQuery ajax webservice:get 和 post 一.GET 方式 客户端 复制代码 代码如下: var data = { classCode: "0001"}; // 这里要直接使用JOSN对象 $.ajax({ type: "GET", contentType: "application/json; charset=utf-8", url: "/WebServices/ProductPropertyWebServi

iOS通过ASIHTTPRequest提交JSON数据

先验知识——什么是ASIHTTPRequest? 使用iOS SDK中的HTTP网络请求API,相当的复杂,调用很繁琐,ASIHTTPRequest就是一个对CFNetwork API进行了封装,并且使用起来非常简单的一套API,用Objective-C编写,可以很好的应用在Mac OS X系统和iOS平台的应用程序中.ASIHTTPRequest适用于基本的HTTP请求,和基于REST的服务之间的交互. 如何使用ASIHTTPRequest? 网上有很多专门介绍ASIHTTPRequest使用

使用Retrofit发送POST请求提交JSON数据

Retrofit官网:https://square.github.io/retrofit/ 示例如下 HttpService.java import okhttp3.RequestBody; import retrofit2.Call; import retrofit2.http.Body; import retrofit2.http.Headers; import retrofit2.http.POST; public interface HttpService { String BASE_U