2017-07-25 74 views
0

如何发布我的个人信息从android设备发布到我的api路由。 目前我没有得到任何响应在我的Android监视器。Android将发布信息添加到api数据库

我创建了一个基本的RetrofitBuilder类。 我已创建包含该一个ApiService:

@FormUrlEncoded 
@POST("device") 
Call<DeviceResponse> device(@Field("device_name") String device_name, 
          @Field("device_producer") String device_producer, 
          @Field("device_pixel_width") int device_pixel_width, 
          @Field("device_pixel_height") int device_pixel_height, 
          @Field("device_ratio_width") int device_ratio_width, 
          @Field("device_ratio_height") int device_ratio_height, 
          @Field("device_android_version") int device_android_version, 
          @Field("device_status") int device_status); 

其中包含与设定器和吸气剂的装置的构造设备型号。

一个DeviceResponse类:

public class DeviceResponse { 

    List<Device> data; 

    public List<Device> getData() { 
     return data; 
    } 

} 

而且在我的活动我这样称呼它:

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

    tokenManager = TokenManager.getInstance(getSharedPreferences("prefs", MODE_PRIVATE)); 
    service = RetrofitBuilder.createServiceWithAuth(ApiService.class, tokenManager); 

      Integer id = null; 
      String device_name = "samsung"; 
      String device_producer = "apple"; 
      int device_pixel_width = 12312; 
      int device_pixel_height = 123; 
      int device_ratio_width = 12; 
      int device_ratio_height = 23; 
      char device_android_version = 6; 
      int device_status = 1; 

      call = service.device(device_name, device_producer, device_pixel_width, device_pixel_height, device_ratio_width, device_ratio_height, device_android_version, device_status); 

回答

2

只需要添加@POST批注与端点

@FormUrlEncoded 
@POST("endPoint") 
Call<DeviceResponse> device(@Field("device_name") String device_name, 
         @Field("device_producer") String device_producer, 
         @Field("device_pixel_width") int device_pixel_width, 
         @Field("device_pixel_height") int device_pixel_height, 
         @Field("device_ratio_width") int device_ratio_width, 
         @Field("device_ratio_height") int device_ratio_height, 
         @Field("device_android_version") int device_android_version, 
         @Field("device_status") int device_status); 

检查此更多信息:https://futurestud.io/tutorials/retrofit-send-data-form-urlencoded

+0

对不起,如果我错了,但我有一个端点或没有? '@POST(“device”)' – utdev

+0

如果设备是你的端点,那么你应该在@ Reveofit中加上@POST注释 –

+0

对不起,我忘了复制那个 – utdev

0

尝试添加@POST这样,

@FormUrlEncoded 
@POST("yourURLendpoint") 
Call<DeviceResponse> device(@Field("device_name") String device_name, 
          @Field("device_producer") String device_producer, 
          @Field("device_pixel_width") int device_pixel_width, 
          @Field("device_pixel_height") int device_pixel_height, 
          @Field("device_ratio_width") int device_ratio_width, 
          @Field("device_ratio_height") int device_ratio_height, 
          @Field("device_android_version") int device_android_version, 
          @Field("device_status") int device_status); 
+0

对不起,我有一个端点忘了复制 – utdev

+0

ok ..无论你有什么终结点,在@Post注解中添加 –

+0

确定它被添加仍然没有回应或你是什么意思? – utdev