[ https://issues.apache.org/jira/browse/THRIFT-1162?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13679010#comment-13679010 ]
Jens Geyer commented on THRIFT-1162: ------------------------------------ @[~ag9], is this still valid? If yes, could you please provide a patch instead? http://thrift.apache.org/docs/HowToContribute > THttpClient - provide ReadByte() method for server response > ----------------------------------------------------------- > > Key: THRIFT-1162 > URL: https://issues.apache.org/jira/browse/THRIFT-1162 > Project: Thrift > Issue Type: New Feature > Components: C# - Library > Environment: win2k, .net2 > Reporter: alex_gs > Priority: Trivial > Labels: thrift > Attachments: THttpClient.cs > > Original Estimate: 4m > Remaining Estimate: 4m > > For now THttpClient supports just one way to read data from server response - > the method Read(byte[] buf, int off, int len). But at the moment of getting > data user don't know size of getting data so can't determine size of array > instance exactly (see sample below). > By example, > server code (simple asp.net app): > {code:java} > public class post : IHttpHandler { > > public void ProcessRequest (HttpContext context) { > if (context.Request.UserAgent=="C#/THttpClient") { > context.Response.ContentType = "application/text"; > context.Response.ContentEncoding = > System.Text.Encoding.Default; > context.Response.Write("thrift server response"); > } > } > ... > {code} > client code (console app): > {code:java} > Uri uri = new Uri("http://localhost:3968/TimeServerSample/post.ashx"); > THttpClient transport = new THttpClient(uri); > transport.Proxy = WebRequest.DefaultWebProxy; > string postData = "test"; > transport.Write(UTF8Encoding.UTF8.GetBytes(postData)); > transport.Flush(); > byte[] arr = new byte[1024]; > transport.Read(arr, 0, 1024); > Console.WriteLine(System.Text.UTF8Encoding.UTF8.GetString(arr)); > {code} > Would be better to define (in addition to Read) method *ReadByte* (like > public method in Stream class) for getting byte array byte for a byte. > Something like that: > {code:java} > System.Collections.ArrayList al = new System.Collections.ArrayList(); > int res = 0; > while ( res != -1) { > res = transport.ReadByte(); > if (res > -1) al.Add((byte)res); > } > byte[] bytes = (byte[])al.ToArray(typeof(byte)); > {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira