在API URL中放置值并将其回调以保存数据

时间:2017-10-18 06:42:08

标签: java android api

我该如何制作

(URL)+ LOC =安培;消息=安培; datetimefinal =安培; IDNO =

(URL)+ LOC = 1&安培;消息=消息和; datetimefinal = finaldatetime&安培; IDNO = 1

msg(message)值是全局变量,我使用Date()获得finaldatetime。

这是我正在使用

的代码
 DateFormat dateFormat = new SimpleDateFormat("MMM dd, yyyy HH:mm:ss");
    Date date = new Date();
    String datefinal = dateFormat.format(date).toString();
    final String BASEPATH = "URL";

   Retrofit retrofit  = new Retrofit.Builder()
           .baseUrl(BASEPATH)
           .addConverterFactory(GsonConverterFactory.create())
           .build();
    DeviceData deviceData = retrofit.create(DeviceData.class);

    Map<String, String> params = new HashMap<>();
    params.put("location", "1");
    params.put("datetime", datefinal);
    params.put("msg", message);
    params.put("id", "1");

    deviceData.getMyThing(params, new Callback<String>() {
        @Override
        public void onResponse(Call<String> call, Response<String> response) {
            Toast toast = Toast.makeText(context,"test",Toast.LENGTH_SHORT);
            toast.show();
        }

        @Override
        public void onFailure(Call<String> call, Throwable t) {
            Toast toast = Toast.makeText(context,"test2",Toast.LENGTH_SHORT);
            toast.show();
        }
    }
        // ... do some stuff here.
    );
}

这是我的界面

public interface DeviceData {

@GET("/mobile_alerts_api.php?")
void getMyThing(Map<String, String>map,Callback<String> callback);

现在,我有错误说&#34;必须有返回类型或Callback作为最后一个参数。&#34;。我正在使用retrofit2。感谢

1 个答案:

答案 0 :(得分:0)

进行以下更改:

 @GET("/mobile_alerts_api.php?")
    void getMyThing(Map<String, String>map,Callback<String> callback);

将此更改为

 @GET("/mobile_alerts_api.php?")
    Call<String> getMyThing(@FieldMap Map<String, String> map,Callback<String> callback);

如果你的逻辑是正确的,它会起作用。

希望它有助于!!。