Author: bryanduxbury
Date: Thu Sep  2 01:00:19 2010
New Revision: 991786

URL: http://svn.apache.org/viewvc?rev=991786&view=rev
Log:
THRIFT-721. py: THttpClient ignores url parameters

Respect query string in THttpClient and generated remotes. Also, add an error 
message on unknown methods.

Patch: Thomas Kho

Modified:
    incubator/thrift/trunk/compiler/cpp/src/generate/t_py_generator.cc
    incubator/thrift/trunk/lib/py/src/transport/THttpClient.py

Modified: incubator/thrift/trunk/compiler/cpp/src/generate/t_py_generator.cc
URL: 
http://svn.apache.org/viewvc/incubator/thrift/trunk/compiler/cpp/src/generate/t_py_generator.cc?rev=991786&r1=991785&r2=991786&view=diff
==============================================================================
--- incubator/thrift/trunk/compiler/cpp/src/generate/t_py_generator.cc 
(original)
+++ incubator/thrift/trunk/compiler/cpp/src/generate/t_py_generator.cc Thu Sep  
2 01:00:19 2010
@@ -1352,6 +1352,8 @@ void t_py_generator::generate_service_re
     "  else:" << endl <<
     "    port = 80" << endl <<
     "  uri = url[2]" << endl <<
+    "  if url[4]:" << endl <<
+    "    uri += '?%s' % url[4]" << endl <<
     "  http = True" << endl <<
     "  argi += 2" << endl <<
     endl <<
@@ -1407,6 +1409,10 @@ void t_py_generator::generate_service_re
 
     f_remote << endl;
   }
+  f_remote << "else:" << endl;
+  f_remote << "  print 'Unrecognized method %s' % cmd" << endl;
+  f_remote << "  sys.exit(1)" << endl;
+  f_remote << endl;
 
   f_remote << "transport.close()" << endl;
 

Modified: incubator/thrift/trunk/lib/py/src/transport/THttpClient.py
URL: 
http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/py/src/transport/THttpClient.py?rev=991786&r1=991785&r2=991786&view=diff
==============================================================================
--- incubator/thrift/trunk/lib/py/src/transport/THttpClient.py (original)
+++ incubator/thrift/trunk/lib/py/src/transport/THttpClient.py Thu Sep  2 
01:00:19 2010
@@ -54,6 +54,8 @@ class THttpClient(TTransportBase):
         self.port = parsed.port or httplib.HTTPS_PORT
       self.host = parsed.hostname
       self.path = parsed.path
+      if parsed.query:
+        self.path += '?%s' % parsed.query
     self.__wbuf = StringIO()
     self.__http = None
     self.__timeout = None


Reply via email to