Java 如何使用改型库发布原始JSON对象

Java 如何使用改型库发布原始JSON对象,java,android,firebase,firebase-cloud-messaging,retrofit,Java,Android,Firebase,Firebase Cloud Messaging,Retrofit,我尝试使用Postman并使用同一个JSON对象进行测试,它工作得非常好,但当我使用改型库时,它不起作用 我尝试将JSON对象放在Pojo类中,但仍然不起作用 通知服务类 public interface NotificationService { @Headers({ "Content-Type:"+ApiConstants.CONTENT_TYPE, "Authorization:"+ApiConstants.SERVER_KEY

我尝试使用Postman并使用同一个JSON对象进行测试,它工作得非常好,但当我使用改型库时,它不起作用

我尝试将JSON对象放在Pojo类中,但仍然不起作用

通知服务类

public interface NotificationService {
    @Headers({
            "Content-Type:"+ApiConstants.CONTENT_TYPE,
            "Authorization:"+ApiConstants.SERVER_KEY
    })
    @POST(ApiConstants.SEND)
    Call<ResponseBody> sendNotification(@Body String body);

}
主要活动

private void buttonIsPressed() {
        RetrofitClient retrofitClient;
        retrofitClient = RetrofitClient.getInstance();


        Call<ResponseBody> call = retrofitClient.getNotificationService().sendNotification(ApiConstants.NOTIFICATION);

        call.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                ResponseBody result = response.body();
                String gs = new Gson().toJson(result);
                Log.d("MainActivity", "response = " + gs);
            }

            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {
                Log.d(TAG, "//onFailure");
            }
        });
    }
private void按钮按下(){
改造客户;
RefughtClient=RefughtClient.getInstance();
Call Call=reformationclient.getNotificationService().sendNotification(ApiConstants.NOTIFICATION);
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
ResponseBody result=response.body();
字符串gs=new Gson().toJson(结果);
日志d(“主要活动”,“响应=”+gs);
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
Log.d(标记“//onFailure”);
}
});
}

我试图在按下按钮时向某些特定用户发送通知。从中我可以看出,唯一不起作用的是,在使用
调用sendNotification(@body String body)

时,我为body提供了错误的输入

public class MyRequestBodyModel {

    @SerializedName("id")
    private int id;

    @SerializedName("name")
    private String name;

}
创建MyRequestBodyModel的新实例并传递您的值

MyRequestBodyModel model = new MyRequestBodyModel();
model.id = 1;
model.name = "john";
将此模型的实例设置为改装调用方法的参数

Call<ResponseBody> sendNotification(@Body MyRequestBodyModel model);
调用sendNotification(@Body MyRequestBodyModel model);

您应该创建一个模型类

public class MyRequestBodyModel {

    @SerializedName("id")
    private int id;

    @SerializedName("name")
    private String name;

}
创建MyRequestBodyModel的新实例并传递您的值

MyRequestBodyModel model = new MyRequestBodyModel();
model.id = 1;
model.name = "john";
将此模型的实例设置为改装调用方法的参数

Call<ResponseBody> sendNotification(@Body MyRequestBodyModel model);
调用sendNotification(@Body MyRequestBodyModel model);

使用此方法从应用程序内发送FCM消息,需要在应用程序内指定FCM服务器密钥。顾名思义,此密钥只应在受信任的环境中使用,例如您的开发机器、您控制的服务器或云功能。通过在您的应用程序中使用此密钥,恶意用户可以从中提取该密钥,然后代表您向应用程序的所有用户发送消息。要安全地发送消息,您需要运行服务器端代码。请参阅和。使用此方法从应用程序内发送FCM消息需要在应用程序内指定FCM服务器密钥。顾名思义,此密钥只应在受信任的环境中使用,例如您的开发机器、您控制的服务器或云功能。通过在您的应用程序中使用此密钥,恶意用户可以从中提取该密钥,然后代表您向应用程序的所有用户发送消息。要安全地发送消息,您需要运行服务器端代码。见和。