java - 突然通知没有从 java 服务器到达 Android

标签 java android rest push-notification

我多年来一直发送通知,没有任何问题,但突然不起作用。

谷歌的回应是:

com.google.android.gcm.server.InvalidRequestException: HTTP Status Code: 400

我使用的方法是:

@POST
@Path("sms")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.TEXT_PLAIN)
public void sendMensaje(String mensajeJSON){
    LOGGER.log(Level.ERROR, "zzz Empieza");
    try {
        System.out.println("ENVIO: " + "En Server" + "mensajeJSON:" + mensajeJSON);
        LOGGER.log(Level.ERROR, "zzz " + "En Server" + "mensajeJSON:" + mensajeJSON);
        Mensaje mensaje = new Mensaje().transformJSONStringToMensajeObject(mensajeJSON);
        Gson gson = new GsonBuilder().create();
        LOGGER.log(Level.ERROR, "zzz " + "orden convertida de JSON");
        //TODO get usuario de la base de datos mediante el email
        String usuarioEmail = mensaje.getUsuario();
        LOGGER.log(Level.ERROR, "zzz usuario: " + usuarioEmail);
        DispositivoGestor dispositivoGestor = new DispositivoGestor();
        LOGGER.log(Level.ERROR, "zzz empezamos a buscar codigo");
        String codigoMovilUsuario = dispositivoGestor.selectCodigoDispositivoByEmail(usuarioEmail);
        LOGGER.log(Level.ERROR, "zzz codigo encontrado: " + codigoMovilUsuario);
        if(null!=codigoMovilUsuario){
            String mensajeString = mensaje.getMensaje();
            Sender sender = new Sender( "AIzaSyBwD0z3KU7ShyRsTrP8qeic_KVaaq44CAM"); //TODO HARCODED, pero está bien harcodeado

            LOGGER.log(Level.ERROR, "zzz " + "CREAR message");
            Message message = new Message.Builder()
            .timeToLive(604800)//7 días
            .delayWhileIdle(false)
            .addData("message",
                    mensajeString)
                    .build();

            LOGGER.log(Level.ERROR, "zzz " + "INICIO ENVIO");
            Result result = sender.send(message, codigoMovilUsuario, 1);
            LOGGER.log(Level.ERROR, "zzz " + "FIN ENVIO");


            System.out.println(result.toString());
            LOGGER.log(Level.ERROR, "zzz " + "result.toString():  " + result.toString());
            if(result.toString().contains("error")) {
                LOGGER.log(Level.ERROR, "zzz " + "EROOORRR");
                System.out.println("return false");

//返回“假”; }LOGGER.log(Level.ERROR, "zzz"+ "确定");

        } else {
            System.out.println("NO se ha encontrado el código del user para enviar la notificación Push");
        }


    } catch (Exception e) {
        e.printStackTrace();
    }
    System.out.println("return true");
    LOGGER.log(Level.ERROR, "zzz " + "FIN");
}

我尝试发送的消息是:

Message(timeToLive=604800, delayWhileIdle=false, data: {message={"mExplotacionIdAccess":6200,"mNIF":"E05252317","mNombre":"LA SOLANILLA, T.C","mDireccion":"CAMINO DE AVILA, 4","mTermino":"SAN ESTEBAN DE LOS PATOS","mCEA":"ES052060000014","mTelefono":"651420376","mProvincia":"Ávila","mZona":"VALLE AMBLES","mProvinciaCliente":"sila","mTerminoCliente":"SAN ESTEBAN DE LOS PATOS","mDireccionCliente":"CAMINO Ds, 4","mProvinciaClienteId":"5","mTerminoClienteId":"195","mProvinciaId":"195","mTerminoId":"195","mSituacionPoliza":"ORDEN CREADA MANUALMENTE, NO TIENE SEGURO","mEstadoPoliza":"0","mSeguro":false,"mAvisoBD":"ORDEN CREADA MANUALMENTE, NO TIENE SEGURO","mPlantaId":1,"mPlanta":"SEBERIA CASTELLANA S.L.","mPlaNombre":"SEBERIA CASTELLANA S.L.","mPlaNIF":"B-05150107","mPlaDireccion":"CAMINO DE ÁVILA, 1","mPlaLocalidad":"PRNOS","mPlaProvincia":"s","mPlaRegistro":"011-05-AI11-05","mConductorId":100,"mTranRazon":"CASTELLANA, S.L.","mTranCIF":"s107","mTranAut":"TS.ES.08.050000002","mTranNIF":"s7Y","mTranMat":"4sBMF","mTranPrecinto":"precinto","mTelefono2":"625094253","mTranNombre":"sdsf sdf sfd","mEspecie":"AV","mNumero":1,"mCebo":false,"mId":99905009,"mEstado":"nueva","mFechaRecepcion":"24/04/2019","mHoraRecepcion":"13:23","mFechaRecogida":"06/08/2019","mColorCode":5,"mEstadoPoliza2":"0","mSintomas":false,"mAccesible":true,"mScrapie":false,"mBrucelosis":false,"mTuberculosis":false,"mOtrasEnfermedades":false,"latitud":0.0,"longitud":0.0}})

问题出在哪里???

非常感谢您的回复!对我的英语感到抱歉

最佳答案

我也遇到这个问题,我怀疑这与 Google 弃用和禁用 GCM API 有关

关于java - 突然通知没有从 java 服务器到达 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57373831/

相关文章:

python - 对 API 包装器进行单元测试

Java Web 启动 : How to make the system download the file every time the file changes

java - 广播接收器中未触发断点

java - 当我创建类的新实例时,为什么会出现 java.lang.NullPointerException?

android - 更新到最新版本后无法在android studio中创建项目

java - 我们如何在rest api自动化中动态构建 "Params"

java - 是否有适用于 Java 的 HttpCahce 客户端库?

java - android.content.ActivityNotFoundException : passing url to the intent

android - Activity 不将信息保存到 MySQL 数据库中

Java拉力赛REST API : How to create new test case