Re: Missing something obvious with python-requests

Discussion in 'Python' started by Chris Angelico, Jan 4, 2013.

  1. On Fri, Jan 4, 2013 at 5:53 AM, Ray Cote
    <> wrote:
    > proxies = {
    > 'https': '192.168.24.25:8443',
    > 'http': '192.168.24.25:8443', }
    >
    > a = requests.get('http://google.com/', proxies=proxies)
    >
    >
    > When I look at the proxy log, I see a GET being performed -- when it should be a CONNECT.
    > Does not matter if I try to get http or https google.com.


    Not sure if it's related to your problem or not, but my understanding
    of a non-SSL request through a proxy is that it'll be a GET request
    (eg "GET http://google.com/ HTTP/1.0"). So the problem is only that
    it's still doing GET requests when it's an https query (which is where
    CONNECT is needed).

    ChrisA
    Chris Angelico, Jan 4, 2013
    #1
    1. Advertising

  2. Chris Angelico

    Hans Mulder Guest

    On 4/01/13 03:56:47, Chris Angelico wrote:
    > On Fri, Jan 4, 2013 at 5:53 AM, Ray Cote
    > <> wrote:
    >> proxies = {
    >> 'https': '192.168.24.25:8443',
    >> 'http': '192.168.24.25:8443', }
    >>
    >> a = requests.get('http://google.com/', proxies=proxies)
    >>
    >>
    >> When I look at the proxy log, I see a GET being performed -- when it should be a CONNECT.
    >> Does not matter if I try to get http or https google.com.


    > Not sure if it's related to your problem or not, but my understanding
    > of a non-SSL request through a proxy is that it'll be a GET request
    > (eg "GET http://google.com/ HTTP/1.0"). So the problem is only that
    > it's still doing GET requests when it's an https query (which is where
    > CONNECT is needed).


    It all depends on the proxy URL.

    It the proxy URL is http://192.168.24.25/, then the client should send
    GET requests to the proxy in both cases, and the proxy should send GET
    or CONNECT to the origin server, depending on whether origin URL uses
    SSL.

    If the proxy URL is https://192.168.24.25/, then the client should send
    CONNECT requests to the proxy, and the proxy should send GET or CONNECT
    as appropriate.

    Python-requests appears to implement only the first case.


    Hope this helps,

    -- HansM
    Hans Mulder, Jan 4, 2013
    #2
    1. Advertising

  3. On Sat, Jan 5, 2013 at 2:00 AM, Hans Mulder <> wrote:
    > It the proxy URL is http://192.168.24.25/, then the client should send
    > GET requests to the proxy in both cases, and the proxy should send GET
    > or CONNECT to the origin server, depending on whether origin URL uses
    > SSL.
    >
    > If the proxy URL is https://192.168.24.25/, then the client should send
    > CONNECT requests to the proxy, and the proxy should send GET or CONNECT
    > as appropriate.


    Are you sure? This seems backward. As I understand it, a GET request
    to a proxy triggers a GET request to the origin server, and a CONNECT
    request to a proxy triggers a TCP socket connection to the origin host
    (which may not even be an HTTP/HTTPS server). This has nothing to do
    with the protocol used between the client and the proxy.

    ChrisA
    Chris Angelico, Jan 4, 2013
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Steven D'Aprano
    Replies:
    2
    Views:
    360
    Dan Christensen
    Feb 20, 2006
  2. Wayne  Wengert

    Missing Something Obvious Here!

    Wayne Wengert, Aug 30, 2003, in forum: ASP General
    Replies:
    0
    Views:
    96
    Wayne Wengert
    Aug 30, 2003
  3. Ray Cote
    Replies:
    0
    Views:
    115
    Ray Cote
    Jan 3, 2013
  4. Barry Scott
    Replies:
    0
    Views:
    106
    Barry Scott
    Jan 3, 2013
  5. Ray Cote
    Replies:
    0
    Views:
    99
    Ray Cote
    Jan 4, 2013
Loading...

Share This Page