Changeset 1473

Show
Ignore:
Timestamp:
07/03/08 22:06:27 (3 months ago)
Author:
thijs
Message:

Fix issue #306: User-Agent missing in AMF client.

Patch by: thijs
Review by: nick

Location:
pyamf/trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • pyamf/trunk/CHANGES.txt

    r1467 r1473  
    770.4.0 (unreleased) 
    88------------------ 
     9 - The remoting client now sends a customizable User-Agent header (Ticket:306) 
    910 - Added ability to set the HTTP referer in remoting client (Ticket:316) 
    1011 - Fixed issue where the AMF3 encoder assumed objects with a 'tag' attribute 
  • pyamf/trunk/pyamf/remoting/client/__init__.py

    r1466 r1473  
    1616#: @see: L{ClientTypes<pyamf.ClientTypes>} 
    1717DEFAULT_CLIENT_TYPE = pyamf.ClientTypes.Flash6 
     18 
     19#: Default user agent is C{PyAMF/x.x.x}. 
     20DEFAULT_USER_AGENT = 'PyAMF/%s' % '.'.join(map(lambda x: str(x), pyamf.__version__)) 
    1821 
    1922HTTP_OK = 200 
     
    187190 
    188191    def __init__(self, url, amf_version=pyamf.AMF0, client_type=DEFAULT_CLIENT_TYPE, 
    189                  referer=None): 
     192                 referer=None, user_agent=DEFAULT_USER_AGENT): 
    190193        self.logger = logging.instance_logger(self) 
    191194        self.original_url = url 
     
    193196        self.request_number = 1 
    194197 
     198        self.user_agent = user_agent 
    195199        self.referer = referer 
    196200        self.amf_version = amf_version 
     
    239243        self.logger.info('Creating connection to %s://%s:%s' % (self.url[0], hostname, port)) 
    240244        self.logger.debug('Referer: %s' % self.referer) 
     245        self.logger.debug('User-Agent: %s' % self.user_agent) 
    241246         
    242247    def addHeader(self, name, value, must_understand=False): 
     
    341346        self.logger.debug('Executing single request: %s' % request) 
    342347        body = remoting.encode(self.getAMFRequest([request])) 
    343         headers = {'Content-Type': remoting.CONTENT_TYPE} 
     348        headers = {'Content-Type': remoting.CONTENT_TYPE, 
     349                   'User-Agent': self.user_agent} 
    344350 
    345351        if self.referer is not None: 
     
    361367        """ 
    362368        body = remoting.encode(self.getAMFRequest(self.requests)) 
    363         headers = {'Content-Type': remoting.CONTENT_TYPE} 
     369        headers = {'Content-Type': remoting.CONTENT_TYPE, 
     370                   'User-Agent': self.user_agent} 
    364371 
    365372        if self.referer is not None: 
  • pyamf/trunk/pyamf/tests/remoting/test_client.py

    r1432 r1473  
    55 
    66""" 
    7 Test for Remoting client. 
     7Tests for Remoting client. 
    88 
    99@since: 0.1.0 
     
    371371 
    372372        dc.tc = self 
    373         dc.expected_headers = {'Content-Type': 'application/x-amf'} 
     373        dc.expected_headers = {'Content-Type': remoting.CONTENT_TYPE, 
     374                               'User-Agent': client.DEFAULT_USER_AGENT} 
    374375 
    375376        service = gw.getService('baz', auto_execute=False) 
     
    409410 
    410411        dc.tc = self 
    411         dc.expected_headers = {'Content-Type': 'application/x-amf'} 
     412        dc.expected_headers = {'Content-Type': 'application/x-amf', 
     413                               'User-Agent': client.DEFAULT_USER_AGENT} 
    412414 
    413415        baz = gw.getService('baz', auto_execute=False)