搜尋

首頁  >  問答  >  主體

java - Google Protocol Buffers生成.proto文件问题

有个项目需要向Google提供数据,Google指定使用proto传输;
经过几天的研究,可以使用数据结构的proto文件,通过protoc编译成java类,但是我通过类中writeTo方法写入到文件,通过HTTPS POST方式传递给Google时,总是报:HTTP/1.1 400 Bad Request 错误。
经过和Google支持人员的沟通,说我生成的proto文件有问题,如果是内容有问题,应该会报定义好的错误,报400错误应该是proto文件有问题。
所以我想问一下,java生成.proto文件该如何操作呢?我生成文件的代码如下:

        UpdateUsersDataRequest.Builder updateUsersDataRequestBuilder = UpdateUsersDataRequest.newBuilder();

        UserDataOperation.Builder userdataBuilder = UserDataOperation.newBuilder()
                .setUserId("CAESEA1JoU33g1KZx6bRNobFr68")
                .setUserListId(57543966)
                .setTimeAddedToUserList(2132132132)
                .setDataSourceId(1);

        updateUsersDataRequestBuilder.addOps(userdataBuilder.build());

        userdataBuilder = UserDataOperation.newBuilder()
                .setUserId("CAESEA1eU2gPJxqEKtc_BnUMrJQ")
                .setUserListId(57543966)
                .setTimeAddedToUserList(2132132132)
                .setDataSourceId(1);

        updateUsersDataRequestBuilder.addOps(userdataBuilder.build());
        UpdateUsersDataRequest updateUsersDataRequest = updateUsersDataRequestBuilder.build();
        //        System.out.println(updateUsersDataRequest);
        // 写入到proto文件
        String protoFile = "test2.proto";
        FileOutputStream output = new FileOutputStream(protoFile);
        updateUsersDataRequest.writeTo(output);
        output.close();
怪我咯怪我咯2770 天前930

全部回覆(2)我來回復

  • PHP中文网

    PHP中文网2017-04-17 13:26:57

    proto文件是指定義protocol協定的定義文件,你這個是輸出的具體協定資料了吧。應該檢查用來產生java類別的proto協定文件是否和google規定的協定文件一致

    回覆
    0
  • 迷茫

    迷茫2017-04-17 13:26:57

    你這個問題解決了?
    我們也正在和Google對接,能給個聯絡方式麼,我在微博上已經給你發了訊息。

    回覆
    0
  • 取消回覆