How to prevent python requests from percent encoding my URLs?

前端 未结 5 705
故里飘歌
故里飘歌 2020-11-30 03:11

I\'m trying to GET an URL of the following format using requests.get() in python:

http://api.example.com/export/?format=json&key=site:dummy+type:example+group:wh

5条回答
  •  爱一瞬间的悲伤
    2020-11-30 03:28

    In case someone else comes across this in the future, you can subclass requests.Session, override the send method, and alter the raw url, to fix percent encodings and the like. Corrections to the below are welcome.

    import requests, urllib
    
    class NoQuotedCommasSession(requests.Session):
        def send(self, *a, **kw):
            # a[0] is prepared request
            a[0].url = a[0].url.replace(urllib.quote(","), ",")
            return requests.Session.send(self, *a, **kw)
    
    s = NoQuotedCommasSession()
    s.get("http://somesite.com/an,url,with,commas,that,won't,be,encoded.")
    

提交回复
热议问题