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

 我来答
匿名用户
2016-11-16
展开全部

直接上个实例吧。

通过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,


然后就来建立接口了,其内容如下:
[java] view plain copy
    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字符串形式    
[java] view plain copy
        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) {  
            Log.e("sssss",t.getMessage());  
        }  
    });


 

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式