twilio / twilio-python

A Python module for communicating with the Twilio API and generating TwiML.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

class AsyncTwilioHttpClient takes "proxy_url" parameter, but does not use it for anything.

skyler-guha opened this issue · comments

Issue Summary

I work behind a firewall and use a proxy to make requests. I wanted to send messages asynchronously using twilio and followed the steps here in the documentation to make asynchronous message sending requests. I used the "proxy_url" parameter of the AsyncTwilioHttpClient class to specify my proxy url string in the form "http://xxx.xxx.xxx.xxx:xxxx". It did not work and i got an error saying "cannot connect to host api.twilio.com 443".

My first assumptions were that maybe the proxy url string format I had used was wrong, or maybe it is a proxy/firewall issue on our end.
I was able to send synchronous messages just fine using the proxy, so that was not the issue. Then I looked at the code for AsyncTwilioHttpClient and found that while it is taking the proxy string, It is not actually doing anything with it. You may confirm the same here at the github page for the code.

Am I doing something wrong here? Am I missing something?
Am I supposed to use a different way to specify the proxy to use for AsyncTwilioHttpClient?

Code Snippet for asynchronous messaging (gives error):

from twilio.http.async_http_client import AsyncTwilioHttpClient
from twilio.rest import Client

async def main():
    account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    auth_token  = "your_auth_token"
    http_client = AsyncTwilioHttpClient(proxy_url= "http://xxx.xxx.xxx.xxx:xxxx")
    client = Client(account_sid, auth_token, http_client=http_client)

    message = await client.messages.create_async(to="+1xxxxxxxxxx", from_="+1xxxxxxxxxx",
                                                 body="Hello there!")

    print(message.sid)

asyncio.run(main())

Code Snippet for synchronous messaging (does not give error):

from twilio.http.http_client import TwilioHttpClient
from twilio.rest import Client

def main():
    account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    auth_token  = "your_auth_token"
    http_client = TwilioHttpClient(proxy= {"http" : "http://xxx.xxx.xxx.xxx:xxxx"})
    client = Client(account_sid, auth_token, http_client=http_client)

    message = client.messages.create(to="+1xxxxxxxxxx", from_="+1xxxxxxxxxx",
                                                 body="Hello there!")
    print(message.sid)

main()

Exception/Log

twilio_error

Technical details:

  • twilio-python version: 9.0.0
  • python version: 3.10

I can take a look