如何通过Retrofit提交Json格式数据

本文将介绍如何通过retrofit库post一串json格式的数据。首先post的json数据格式如下:

{
  "Id": "string",
  "DeviceId": "string",
  "Name": "string",
  "SumDistance": 0,
  "RouteNo": "string",
  "SumPoints": 0,
  "SetupTime": "2016-06-10T13:11:00.766Z",
  "UsedTime": 0,
  "Points": [
    {
      "Id": "string",
      "RouteNo": "string",
      "Name": "string",
      "Longitude": "string",
      "Latitude": "string",
      "Height": 0,
      "Distance": 0,
      "Yaw": 0,
      "Pitch": 0,
      "Speed": 0,
      "Usedtime": 0
    }
  ]
}

通过安装Android studio gsonformat插件,根据上面的json格式自动生成一个Bean类,本文命名为FlyRouteBean。

package com.example.administrator.retrofitex;
import java.util.List;

import android.os.Parcel;
import android.os.Parcelable;

/**
 * Created by Administrator on 2016/6/10.
 */
public class FlyRouteBean{

    /**
     * Id : string
     * DeviceId : string
     * Name : string
     * SumDistance : 0
     * RouteNo : string
     * SumPoints : 0
     * SetupTime : 2016-05-23T06:20:50.254Z
     * UsedTime : 0
     * Points : [{"Id":"string","RouteNo":"string","Name":"string","Longitude":"string","Latitude":"string","Height":0,"Distance":0,"Yaw":0,"Pitch":0,"Speed":0,"Usedtime":0}]
     */

    public String Id;
    public String DeviceId;
    public String Name;
    public double SumDistance;
    public String RouteNo;
    public int SumPoints;
    public String SetupTime;
    public double UsedTime;
    /**
     * Id : string
     * RouteNo : string
     * Name : string
     * Longitude : string
     * Latitude : string
     * Height : 0
     * Distance : 0
     * Yaw : 0
     * Pitch : 0
     * Speed : 0
     * Usedtime : 0
     */

    public List<PointsBean> Points;

    public String getId() {
        return Id;
    }

    public void setId(String Id) {
        this.Id = Id;
    }

    public String getDeviceId() {
        return DeviceId;
    }

    public void setDeviceId(String DeviceId) {
        this.DeviceId = DeviceId;
    }

    public String getName() {
        return Name;
    }

    public void setName(String Name) {
        this.Name = Name;
    }

    public double getSumDistance() {
        return SumDistance;
    }

    public void setSumDistance(double SumDistance) {
        this.SumDistance = SumDistance;
    }

    public String getRouteNo() {
        return RouteNo;
    }

    public void setRouteNo(String RouteNo) {
        this.RouteNo = RouteNo;
    }

    public int getSumPoints() {
        return SumPoints;
    }

    public void setSumPoints(int SumPoints) {
        this.SumPoints = SumPoints;
    }

    public String getSetupTime() {
        return SetupTime;
    }

    public void setSetupTime(String SetupTime) {
        this.SetupTime = SetupTime;
    }

    public double getUsedTime() {
        return UsedTime;
    }

    public void setUsedTime(double UsedTime) {
        this.UsedTime = UsedTime;
    }

    public List<PointsBean> getPoints() {
        return Points;
    }

    public void setPoints(List<PointsBean> Points) {
        this.Points = Points;
    }

    public static class PointsBean implements Parcelable {
        public String Id;
        public String RouteNo;
        public String Name;
        public String Longitude;
        public String Latitude;
        public double Height;
        public double Distance;
        public double Yaw;
        public double Pitch;
        public double Speed;
        public double Usedtime;

        public String getId() {
            return Id;
        }

        public void setId(String Id) {
            this.Id = Id;
        }

        public String getRouteNo() {
            return RouteNo;
        }

        public void setRouteNo(String RouteNo) {
            this.RouteNo = RouteNo;
        }

        public String getName() {
            return Name;
        }

        public void setName(String Name) {
            this.Name = Name;
        }

        public String getLongitude() {
            return Longitude;
        }

        public void setLongitude(String Longitude) {
            this.Longitude = Longitude;
        }

        public String getLatitude() {
            return Latitude;
        }

        public void setLatitude(String Latitude) {
            this.Latitude = Latitude;
        }

        public double getHeight() {
            return Height;
        }

        public void setHeight(double Height) {
            this.Height = Height;
        }

        public double getDistance() {
            return Distance;
        }

        public void setDistance(double Distance) {
            this.Distance = Distance;
        }

        public double getYaw() {
            return Yaw;
        }

        public void setYaw(double Yaw) {
            this.Yaw = Yaw;
        }

        public double getPitch() {
            return Pitch;
        }

        public void setPitch(double Pitch) {
            this.Pitch = Pitch;
        }

        public double getSpeed() {
            return Speed;
        }

        public void setSpeed(double Speed) {
            this.Speed = Speed;
        }

        public double getUsedtime() {
            return Usedtime;
        }

        public void setUsedtime(double Usedtime) {
            this.Usedtime = Usedtime;
        }

        @Override
        public String toString() {
            return "PointsBean{" +
                    "Id='" + Id + '\'' +
                    ", RouteNo='" + RouteNo + '\'' +
                    ", Name='" + Name + '\'' +
                    ", Longitude='" + Longitude + '\'' +
                    ", Latitude='" + Latitude + '\'' +
                    ", Height=" + Height +
                    ", Distance=" + Distance +
                    ", Yaw=" + Yaw +
                    ", Pitch=" + Pitch +
                    ", Speed=" + Speed +
                    ", Usedtime=" + Usedtime +
                    '}';
        }

        @Override
        public void writeToParcel(Parcel dest, int flags) {
            // TODO Auto-generated method stub
            dest.writeString(Id);
            dest.writeString(RouteNo);
            dest.writeString(Name);
            dest.writeString(Longitude);
            dest.writeString(Latitude);
            dest.writeDouble(Height);       
            dest.writeDouble(Distance);
            dest.writeDouble(Yaw);
            dest.writeDouble(Pitch);
            dest.writeDouble(Speed);
            dest.writeDouble(Usedtime);     
        }
        public static final Creator<PointsBean> CREATOR=new Creator<PointsBean>() {

            @Override
            public PointsBean createFromParcel(Parcel source) {
                // TODO Auto-generated method stub
                PointsBean pointsBean=new PointsBean();
                pointsBean.setId(source.readString());
                pointsBean.setRouteNo(source.readString());
                pointsBean.setName(source.readString());
                pointsBean.setLongitude(source.readString());
                pointsBean.setLatitude(source.readString());
                pointsBean.setHeight(source.readInt());
                pointsBean.setDistance(source.readInt());
                pointsBean.setYaw(source.readInt());
                pointsBean.setPitch(source.readInt());
                pointsBean.setSpeed(source.readInt());
                pointsBean.setUsedtime(source.readInt());
                return pointsBean;
            }

            @Override
            public PointsBean[] newArray(int size) {
                // TODO Auto-generated method stub
                return new PointsBean[size];
            }

        };

        @Override
        public int describeContents() {
            // TODO Auto-generated method stub
            return 0;
        }
    }

    @Override
    public String toString() {
        return "FlyRouteBean{" +
                "Id='" + Id + '\'' +
                ", DeviceId='" + DeviceId + '\'' +
                ", Name='" + Name + '\'' +
                ", SumDistance=" + SumDistance +
                ", RouteNo='" + RouteNo + '\'' +
                ", SumPoints=" + SumPoints +
                ", SetupTime='" + SetupTime + '\'' +
                ", UsedTime=" + UsedTime +
                ", Points=" + Points +
                '}';
    }


}

然后就来建立接口了,其内容如下:

public interface PostRoute {  
   @Headers({"Content-Type: application/json","Accept: application/json"})//需要添加头  
    @POST("api/FlyRoute/Add")  
   Call<FlyRouteBean> postFlyRoute(@Body RequestBody route);//传入的参数为RequestBody  
}  

接下来就是提交数据的了:

FlyRouteBean flyRouteBean=new FlyRouteBean();  
flyRouteBean=initdata(flyRouteBean);//根据Bean类初始化一个需要提交的数据类  
Gson gson=new Gson();  
String route= gson.toJson(flyRouteBean);//通过Gson将Bean转化为Json字符串形式
Retrofit retrofit=new Retrofit.Builder()  
            .baseUrl(URL)  
            .addConverterFactory( GsonConverterFactory.create())  
            .build();  
    PostRoute postRoute=retrofit.create(PostRoute.class);  
    RequestBody body=RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"),route);  
    Call<FlyRouteBean> call=postRoute.postFlyRoute(body);  
   call.enqueue(new Callback<FlyRouteBean>() {  
    @Override  
    public void onResponse(Call<FlyRouteBean> call, Response<FlyRouteBean> response) {  
        Log.e("sssss","-----------------------"+response.body().getDeviceId());//这里是用于测试,服务器返回的数据就是提交的数据。  
    }  

    @Override  
    public void onFailure(Call<FlyRouteBean> call, Throwable t) {  

    }  
});  

下载:https://github.com/jdsjlzx/RetrofitEx

原文地址:http://blog.csdn.net/zhupumao/article/details/51628698

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
你可以使用 Retrofit提交 JSON 格式数据。首先,你需要创建一个 Java 类来定义你要提交JSON 数据的结构。然后,你可以使用 Retrofit 的注解来定义请求的方式和路径,以及指定请求体的内容类型为 JSON。最后,你可以调用 Retrofit 的方法来发送请求。 下面是一个示例: 首先,定义一个 Java 类来表示要提交JSON 数据的结构,比如一个用户信息: ```java public class User { private String name; private String email; public User(String name, String email) { this.name = name; this.email = email; } } ``` 接下来,在 Retrofit 的 API 接口中定义请求的方式、路径和请求体的内容类型。使用 `@Body` 注解来指定请求体为 JSON 格式: ```java public interface ApiService { @POST("users") Call<Void> createUser(@Body User user); } ``` 然后,创建 Retrofit 实例并构建 API 接口的实现: ```java Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.example.com/") .addConverterFactory(GsonConverterFactory.create()) .build(); ApiService apiService = retrofit.create(ApiService.class); ``` 最后,调用 API 接口的方法来发送请求: ```java User user = new User("John Doe", "john.doe@example.com"); Call<Void> call = apiService.createUser(user); call.enqueue(new Callback<Void>() { @Override public void onResponse(Call<Void> call, Response<Void> response) { // 请求成功处理 } @Override public void onFailure(Call<Void> call, Throwable t) { // 请求失败处理 } }); ``` 这样,你就可以使用 Retrofit提交 JSON 格式数据了。记得替换示例中的 URL 和路径为你实际的接口地址和路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值