You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When using the Client class to build a request (through its request method) from a URL that contains query parameters, it seems like the only way to pass the query parameters to that method is by having them already urlencoded in the url (no params argument in the request method). The problem with that is that, in the constructor of the Request class (invoked by the request method of the Client class), the URL is converted to unicode. But if the URL contains utf8 characters, the Request constructor is converting urlencoded utf8 characters to unicode, assuming they are non-urlencoded string. The fact that the utf8 characters have been urlencoded makes the unicode conversion incorrect. In class Request's to_url method, you end up with incorrect query in the following line:
Our use case is interacting with the Twitter API, using their search endpoint with a query in farsi language. The query gets corrupted because of the above process (I think, please confirm) and the Twitter API request returns incorrect results.
The text was updated successfully, but these errors were encountered:
Thanks for bringing this to our attention. Do you have a suggested way of resolving this? We're happy to accept pull requests if you have a solution in mind.
Hey. I ended up refactoring our codebase to use the requests library and it solved the problems we were having. It seemed like a more expedient solution for the tight deadlines we had. Sorry I didn't get a chance to work on a solution for this
When using the
Client
class to build a request (through itsrequest
method) from a URL that contains query parameters, it seems like the only way to pass the query parameters to that method is by having them already urlencoded in the url (noparams
argument in therequest
method). The problem with that is that, in the constructor of theRequest
class (invoked by therequest
method of theClient
class), the URL is converted to unicode. But if the URL contains utf8 characters, theRequest
constructor is converting urlencoded utf8 characters to unicode, assuming they are non-urlencoded string. The fact that the utf8 characters have been urlencoded makes the unicode conversion incorrect. In classRequest
'sto_url
method, you end up with incorrectquery
in the following line:Our use case is interacting with the Twitter API, using their
search
endpoint with a query in farsi language. The query gets corrupted because of the above process (I think, please confirm) and the Twitter API request returns incorrect results.The text was updated successfully, but these errors were encountered: