Add note in dev.rst about use of the safe option in Python urllib.quote_plus() 17/head
authorPhillip Kent <phillip.kent@xmlsoup.com>
Fri, 8 Apr 2016 12:30:28 +0000 (13:30 +0100)
committerPhillip Kent <phillip.kent@xmlsoup.com>
Fri, 8 Apr 2016 12:30:28 +0000 (13:30 +0100)
rtd/source/dev.rst

index 66ef6b8..bdb6b3e 100644 (file)
@@ -249,6 +249,11 @@ Build the request string:
    >>> request_str
    'apikey=plgWJfZK4gyS3mOMTVmjUVg-X-jlWlnfaUJ9GAbBbf9EdM-kAYMmAiLqzzq1ElZLYq_u38zCm0bewzGUdP66mg&command=listUsers&response=json'
       
+.. note:: 
+   If you have API calls which contain * (asterisk) characters, you will need to add the option "safe = '*'" for the URL encoding. 
+   The reason is that Python's urllib will encode * characters by default, while CloudStack's internal encoder does not encode them; 
+   this results in an authentication failure for your API call. In the above you would replace "urllib.quote_plus(request[k])" 
+   with "urllib.quote_plus(request[k], safe='*')".
 
 Compute the signature with hmac, do a 64 bit encoding and a url
 encoding: