Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-1159

THttpClient->Flush() issue (connection thru proxy)

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • None
    • 0.9
    • C# - Library
    • w2k sp4, .net2

    • Patch Available

    Description

      1) Issue with timeout at the moment of call THttpClient->Flush() when I try to get data thru proxy.
      Prerequestites: clent(c# thrift) before proxy, we resource (in my case http://google.com)
      Code:

       
      class Program {
         static void Main(string[] args) {
      	Uri uri = new Uri("http://google.com");
      	TTransport transport = new THttpClient(uri);
        	transport.Flush();
         }
      }
      

      At the moment of call the method transport.Flush(); just goes to sleep forever (in my app).
      Issue is locates in the: file Transport/THttpClient.cs -> method CreateRequest()
      code:

       
      connection.Proxy = null;
      

      The lib should set state of proxy using some methods like to:
      use default proxy - property WebRequest.DefaultWebProxy from namespace System.Net
      add new property or methods with Proxy object
      probably use a method of declaring an attribute in C# - to write own custom attribute(s) for class THttpClient; it's be able manage state of object inside without usage of some xml config files

      2) Timeout period is not set by default.
      Actually timeout period set to 0
      Code (file Transport/THttpClient.cs):

      private int connectTimeout = 0;
      private int readTimeout = 0;
      

      Need to set value of timeout by default like 15 seconds instead of infinite interval.

      3) HttpWebRequest connection properties sets by default
      Code (file Transport/THttpClient.cs -> method CreateRequest()):

      connection.ContentType = "application/x-thrift";
      connection.Accept = "application/x-thrift";
      connection.UserAgent = "C#/THttpClient";
      connection.Method = "POST";
      connection.ProtocolVersion = HttpVersion.Version10;
      

      But need to have a way to configure it options thru object or class attributes in client code

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            Unassigned Unassigned
            ag9 alex_gs
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - 12h
                12h
                Remaining:
                Remaining Estimate - 12h
                12h
                Logged:
                Time Spent - Not Specified
                Not Specified

                Slack

                  Issue deployment