(Repeating this as a new question, after posting it as a continuation of a previous thread and seeing no responses. Maybe with a more accurate title...)
I have developed a working script using the Python RDP API. It fails to work in an environment that requires the use of a proxy server to access the Internet. The script is unable to reach the external (AWS) RDP server.
The issue is not in Python. In trying to reach a random external URL from within Python (e.g., https://www.google.com/), I'm successful with the environment HTTP_PROXY and HTTPS_PROXY variables set. If I explicitly unset them in the Python session, I get a failed connection, as I would expect. If I explicitly set them in the Python session, I can successfully reach the URL.
- import os
- os.environ["HTTP_PROXY"] = "webproxy.pln.corp.services:80"
- os.environ["HTTPS_PROXY"] = "webproxy.pln.corp.services:80"
Regardless of whether the proxy is set, in the environment and/or in Python, the RDP API cannot connect. This seems (to me) to indicate that the issue is that RDP is ignoring the proxy server variable setting: RDP's open_platform_session tries the connection without the proxy, and fails.
Is there some RDP system setting or configuration that would force the connection through the proxy server? RDP is clearly not taking the environment setting into account.
There is no uniform mechanism for specifying the proxy configuration in Python. It is up to each module, if it wants to support proxy and how that configuration may be passed. Most common one's like requests support this in the API call, and also read it from system environment variables like HTTP_PROXY, HTTPS_PROXY.
The RDP library is using requests_async for all its I/O work. From what I can see from this issue, this module does not support proxy settings at all.
Either way, this is a feature that client's would request from the library.