2014-11-06 22 views
2

我是協議緩衝區庫的新手......我知道如何發送請求並從使用JSON作爲我的負載格式的Web服務獲取響應...但我不知道如何對protobuf執行相同的操作。如何使用協議緩衝區發送HTTP請求作爲有效負載格式?

有人可以幫忙列舉一個小例子嗎?

FMY我的項目,我想以下三件事發送到服務器:

{ 

    "session_id": "xxxxxx", 
    "location": { 
     "latitude": xx.xx, 
     "longitude": xx.xx 
    } 
} 

任何幫助表示讚賞。預先感謝一噸

+0

哪裏是你到目前爲止的Java代碼?你會分享嗎? – cheffe 2014-11-07 09:54:28

+0

Protobuf只是二進制數據。因此,這裏有兩個獨立的關注點:a)如何將數據序列化/反序列化到對象/二進制文件,以及b)如何通過http發送/接收二進制文件。你卡在哪? – 2014-11-07 20:26:02

+0

嗨馬克,感謝您的回覆..我相信我需要指導這兩個部分..我所有與我有關的請求參數和我會從服務器得到什麼響應..你有任何工作的例子,你可以分享? – 2014-11-08 23:44:46

回答

0

問題是,Javascript無法處理簡單的處理純二進制格式,這是protobuffers中的wireformat。你可以可以只是通過HTTP發送wireformat,但它可能很難在客戶端處理它。

因此,您可以做的是在服務器端將protobuf消息序列化並反序列化爲JSON,並將其用於客戶端和服務器之間的傳輸。您可以使用https://code.google.com/p/protobuf-java-format/在Java中執行這些轉換。

然而,這個庫看起來很有趣,這似乎是實際處理二進制wireformat在javascript:https://github.com/dcodeIO/ProtoBuf.js