首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用REST API的Firebase实时数据库的Java发送数据问题

使用REST API的Firebase实时数据库的Java发送数据问题
EN

Stack Overflow用户
提问于 2018-02-23 15:48:09
回答 1查看 778关注 0票数 4

我正在尝试使用以下JAVA代码通过REST API将一些数据发送到Firebase实时数据库。

代码语言:javascript
运行
复制
public void doWork() {
        consumer.subscribe(Collections.singletonList(this.topic));
        ConsumerRecords<String, String> records = consumer.poll(1000);
        for (ConsumerRecord<String, String> record : records) {
            System.out.println("Sending data: " + record.value() );

            //  https://testiosproject-6054a.firebaseio.com/users.json
         // 1. URL
            URL url;
            try {
                url = new URL("https://testiosproject-1234a.firebaseio.com/users.json");

                // 2. Open connection
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();              
                conn.setDoOutput(true);
                // 3. Specify POST method
                conn.setRequestMethod("POST");
                conn.setRequestProperty("Content-Type", "application/json");
                conn.setRequestProperty("Accept", "application/json");
                conn.connect();

                // Write data
                OutputStream os = conn.getOutputStream();
                OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8");
                osw.write(record.value());
                osw.flush();
                osw.close();

            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

以下是尝试发送的数据:

代码语言:javascript
运行
复制
Sending data: {"UserID":"101","UserAddress":"XYZ","UserAccount":"987","UserName":"Stella"}

但是,我没有在Firebase实时数据库控制台上收到这些数据。我不确定这个问题的原因是什么?

我尝试了Postman客户端,并尝试了相同的URL和数据,它工作正常。

有人能指导我解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2018-03-04 22:57:31

我会使用一个库来抽象其中的一些东西,比如CXF (用于实际的HTTP内容)和Jackson (用于JSON处理)。代码会变得简单得多:

代码语言:javascript
运行
复制
WebClient client = WebClient.create("https://testiosproject-1234a.firebaseio.com");
client.path("users.json");
client.type(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON)
Response r = client.post(record);
MyResponseClassIfAny b = r.readEntity(MyResponseClassIfAny .class);

改编自CXF Documentation

注意,大多数WebClient设置代码可以(也许应该)在fr循环之外完成,因为它永远不会改变。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48943386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档