私は現在、グーグルのプロトコルバッファを使用しています。JavaとC#の間で問題なく動作しますが、Obj-cで同じ使用法を実現しようとすると問題が発生します。
JavaWSはbyte[]を返します。プロトコルバッファAPIを使用するコードは非常に単純です。
productGroup.toByteArray();
次を使用して、SkeetのC#ポートでオブジェクトを再作成できます。
byte[] result = searchWebService.SearchProductsProtocolBuffer(search);
ProductProtoGroup products = ProductProtoGroup.ParseFrom(result);
しかし、obj-c側では、戻り値を処理するのに苦労しています。
同じWebサービスRPCから受け取るNSStringは次のとおりです。
CmYKEzgwMDAwMUFELTEzMjUyNzk5MTQySUZPT0QgJiBCRV...
これが何であるかわからないので、これをどうするかはよくわかりません。バイトの配列から生成されたものを除いて。を使用してNSDataに直接解析してみました
NSData* data = [returnValue dataUsingEncoding:NSUTF8StringEncoding];
しかし、で[ProductProtoGroup parseFromData:data];
、私はInvalidProtocolBuffer
Java側で、元のバイト文字列/ 16進表現を確認しましたがbyte[]
、wsから受け取った文字列と一致しません。
16進数は0-Fです。おそらく、各バイトは文字に変換されましたか?いいえ、一致しません。
どんな助けでもいただければ幸いです。
デーン