Exemple #1
0
        static void WriteFrameMessage(IByteBufferAllocator allocator, FrameThriftMessage msg, List <object> output)
        {
            IByteBuffer buf = null;

            try
            {
                var len = 4 + msg.Content.ReadableBytes;
                buf = allocator.Buffer(len);
                buf.WriteInt(msg.Content.ReadableBytes);
                buf.WriteBytes(msg.Content);
                output.Add(buf.Copy(0, len));
            }
            finally
            {
                buf?.Release();
            }
        }
        public FrameThriftMessage WriteMessage()
        {
            FrameThriftMessage msg = new FrameThriftMessage(ThriftTransportType.Framed,
                                                            Unpooled.WrappedBuffer(new byte[2048]));

            var str = "{\"m\":\"GetInfo\",\"v\":{\"ModelName\":\"InspectionCertificateDetail\",\"SysId\":\"OMS\",\"TemplateGuid\":\"\"},\"lg\":\"zh_cn\",\"tk\":\"adc05daa-8b06-4f8a-8ce7-d2e7aaf69a34\"}";

            msg.WriteMessageBegin(new TMessage("Send", TMessageType.Call, 0));
            TStruct struc = new TStruct("Send_args");

            msg.WriteStructBegin(struc);
            TField field = new TField();

            field.Name = "my_args";
            field.Type = TType.String;
            field.ID   = 1;
            msg.WriteFieldBegin(field);
            msg.WriteString(str);
            msg.WriteFieldEnd();
            msg.WriteFieldStop();
            msg.WriteStructEnd();
            msg.WriteMessageEnd();
            return(msg);
        }