当前位置: 首页 > 知识库问答 >
问题:

Apache Camel到Firebase云消息API 400错误请求错误非JSON请求

巫马安怡
2023-03-14

Postman成功调用Firebase API,但Apache Camel-Spring Boot应用程序返回错误。

API:https://fcm.googleapis.com/fcm/notification?notification_key_name=expectedvalue

Http方法:GET

标题:
授权:预期值
Content-Type:应用程序/json
project_id:预期值

响应代码:400
响应文本:错误请求
响应:{“错误”:“非JSON请求”}

使用以下语法从Java应用程序调用:
。托德(https://fcm.googleapis.com/fcm/notification?notification_key_name=expectedvalue)

所有必需的标题都已设置。身体是空的。HttpMethod也设置为GET。

更新:-添加代码-

public class MyRouteBuilder extends RouteBuilder{  

@Override  
    public void configure() throws Exception {  
        from("direct:notifyroute")  
        .bean(FirebaseNM.class, "getNotificationKey")  
        .setHeader("CamelHttpMethod", constant("GET"))  
        .toD("https://fcm.googleapis.com/fcm/notification?notification_key_name=expectedvalue").log("${body}");  
        //.to("https://fcm.googleapis.com/fcm/notification?notification_key_name=expectedvalue").log("${body}"); //Same error is thrown when I use 'to'  
    }  
}  

public class FirebaseNM{  
public void getNotificationKey(Exchange exchange){  
        exchange.getIn().removeHeaders("*"); //Code throws same error with or without this  
        exchange.removeProperties("*"); //Code throws same error with or without this  
        exchange.getIn().setBody(""); //Code throws same error with or without this  
        exchange.getIn().setHeader("Authorization", SERVER_KEY_VALUE);  
        exchange.getIn().setHeader("Content-Type", "application/json");  
        exchange.getIn().setHeader("project_id", PROJECT_ID_VALUE);          
    }  
}  

Alternate code that doesn't work:  
    rest().get("/nKey").route().removeHeaders("*")  
        .setHeader("Authorization", constant("server-key-value"))  
        .setHeader("Content-Type", constant("application/json"))  
        .setHeader("project_id", constant("project-id-value"))  
        .to("https://fcm.googleapis.com/fcm/notification?notification_key_name=key-name-value")  
        .endRest();  

更新:-问题--
有没有办法在Firebase控制台上查看错误/异常详细信息,或者从API获取详细响应?

更新:-问题2-Firebase云消息留档没有提到我收到的错误(在Enums列中)。
https://firebase.google.com/docs/reference/fcm/rest/v1/ErrorCode
我应该查看的任何其他留档?

共有1个答案

司浩壤
2023-03-14

你考虑过吗https://firebase.google.com/docs/functions/writing-and-viewing-logs?如果您可以访问服务器,这可能是一个选项。

 类似资料:
  • ✔功能:功能文件夹上传成功 我正在开始发布过程(可能需要几分钟)... i函数:正在创建函数FollowerNotification. 其他一切工作都没有问题。只有当我试着用Firebase Firestore做东西的时候。

  • 我使用下面的代码发出http请求,但当抛出异常时,我无法获取每个字段的错误消息。在postman中,它确实显示了正确的错误消息: 它只是显示消息“” 然而,在《邮递员》中,它显示:

  • 我有一个基于Spring Web model view controller(MVC)框架的项目。Spring Web模型-视图-控制器(MVC)框架的版本是3.2.8 我有这个控制器 这个URL一切正常:

  • 目前从Angular JS controller中,我试图将JSON数据发送到后端服务。但是我有400个错误的请求错误。 在Controller中,我试图通过http服务发送数据,如下所示:

  • 我得到了这个错误,有什么想法会导致它吗?我试图发送一个DTO,它有一个扩展抽象类的对象列表,我想这个问题可能是因为DTO中的列表,还是因为抽象类的子类?

  • 我正在使用实现一个联系人应用程序。现在,我正试图通过发送以下格式的put请求来更新联系人 我将XML作为字符串发送,作为请求的主体。这是我的xmlString(请求主体) 我写了下面的代码来发送更新联系人的PUT请求。 当我试图在中发送请求时,联系人更新成功。但是当我试图运行上面的程序时,我得到了 400错误请求错误 我不知道我哪里出错了。任何帮助都将不胜感激!