代码之家  ›  专栏  ›  技术社区  ›  Jamie Marshall

某些网络的重定向失败

  •  0
  • Jamie Marshall  · 技术社区  · 6 年前

    这很难,振作起来。

    我正在为一个客户机排除一些广告链接,因为从他们的服务器重定向似乎不会回来基于我所处的网络。

    • 基于客户端所在的网络,GET请求如何失败?
    • 会触发这么多网络防火墙的响应?

    链接:

    • www.switchdriver.com

    它95%的时间都在:

    它根本不起作用:

    • 妻子办公室网络
    • 酒店Wifi网络

    这里应该发生的是:

    1. 得到www.switchdirver.com
    2. 退货->301
    3. https://www.worx.com/switchdriver-20v-cordless-drill-driver-wx176l.html?utm_source=sftv&utm_medium=tv&utm_campaign=switchdriver

    下面链接的是我从小提琴手的例子www.SwitchDriver.com在LTE网络上成功重定向,在我的办公室网络上失败。

    下面是测试站点的python代码。如果你运行它,你会很快知道这个在你的网络上是否有效。

    import http.client
    import urllib.parse
    
    FiddleHost = "127.0.0.1"
    FiddlePort = 8888
    
    ####Test www.switchdriver.com content####
    #conn = http.client.HTTPConnection(f"{FiddleHost}:{FiddlePort}")
    #conn.set_tunnel("www.switchdriver.com")
    conn = http.client.HTTPConnection("www.switchdriver.com")
    conn.request('GET', '/')
    response = conn.getresponse()
    response.status
    
    content = response.read()
    redirectUrl = response.headers['Location']
    assert response.status == 301
    
    urlparts = urllib.parse.urlparse(redirectUrl)
    #conn = http.client.HTTPSConnection(f"{FiddleHost}:{FiddlePort}")
    #conn.set_tunnel(urlparts.netloc)
    conn = http.client.HTTPSConnection(urlparts.netloc)
    conn.request('GET', f"{urlparts.path}?{urlparts.query}")
    response = conn.getresponse()
    response.status
    
    content = response.read()
    assert response.status==200
    
    response.close()
    conn.close()
    
    0 回复  |  直到 6 年前