0

While I am used to python, I am not very familiar with all the protocols used by browser. I am not trying to setup a proxy for my selenium webdriver and this is the code that I use.

from browsermobproxy import Server, Client
server = Server('/Users/***/Downloads/browsermob-proxy-2.1.1/bin/browsermob-proxy')
server.start()
proxy = server.create_proxy()
profile  = webdriver.FirefoxProfile()
profile.set_proxy(proxy.selenium_proxy())
driver = webdriver.Firefox(firefox_profile=profile)
proxy.new_har("10.203.9.156") 
driver.get("http://10.203.9.156")
print json.dumps(proxy.har, indent =2) # returns a HAR JSON blob
server.stop()
driver.quit()

I am getting an error saying

Unable to connect

This the HAR that from the proxy

{
 "log": {
"comment": "", 
"creator": {
  "comment": "", 
  "version": "2.1.1", 
  "name": "BrowserMob Proxy"
}, 
"version": "1.2", 
"entries": [
  {
    "comment": "", 
    "serverIPAddress": "10.203.9.156", 
    "pageref": "10.203.9.156", 
    "startedDateTime": "2016-07-21T18:54:14.653-07:00", 
    "cache": {}, 
    "request": {
      "comment": "", 
      "cookies": [], 
      "url": "http://10.203.9.156/", 
      "queryString": [], 
      "headers": [], 
      "headersSize": 317, 
      "bodySize": 0, 
      "method": "GET", 
      "httpVersion": "HTTP/1.1"
    }, 
    "timings": {
      "comment": "", 
      "receive": 0, 
      "send": 0, 
      "ssl": -1, 
      "connect": 7, 
      "dns": 0, 
      "blocked": 0, 
      "wait": 4
    }, 
    "time": 12, 
    "response": {
      "status": 301, 
      "comment": "", 
      "cookies": [], 
      "statusText": "Moved Permanently", 
      "content": {
        "mimeType": "", 
        "comment": "", 
        "size": 0
      }, 
      "headers": [], 
      "headersSize": 160, 
      "redirectURL": "https://10.203.9.156/login.html", 
      "bodySize": 0, 
      "httpVersion": "HTTP/1.1"
    }
  }, 
  {
    "comment": "", 
    "serverIPAddress": "10.203.9.156", 
    "pageref": "10.203.9.156", 
    "startedDateTime": "2016-07-21T18:54:14.684-07:00", 
    "cache": {}, 
    "request": {
      "comment": "", 
      "cookies": [], 
      "url": "https://10.203.9.156", 
      "queryString": [], 
      "headers": [], 
      "headersSize": 0, 
      "bodySize": 0, 
      "method": "CONNECT", 
      "httpVersion": "HTTP/1.1"
    }, 
    "timings": {
      "comment": "", 
      "receive": 0, 
      "send": 0, 
      "ssl": -1, 
      "connect": 193, 
      "dns": 0, 
      "blocked": 0, 
      "wait": 0
    }, 
    "time": 194, 
    "response": {
      "status": 0, 
      "comment": "", 
      "cookies": [], 
      "_error": "Unable to connect to host", 
      "statusText": "", 
      "content": {
        "mimeType": "", 
        "comment": "", 
        "size": 0
      }, 
      "headers": [], 
      "headersSize": -1, 
      "redirectURL": "", 
      "bodySize": -1, 
      "httpVersion": "unknown"
    }
  }
], 
"pages": [
  {
    "pageTimings": {
      "comment": ""
    }, 
    "comment": "", 
    "title": "10.203.9.156", 
    "id": "10.203.9.156", 
    "startedDateTime": "2016-07-21T18:54:14.602-07:00"
  }
], 
"browser": {
  "comment": "", 
  "version": "46.0", 
  "name": "Firefox"
}
}
}

These are the two responses that I got for the ip and google.

10.203.9.156 google.com

Can someone explain the reason for this and how to rectify this?

user1429322
  • 1,237
  • 2
  • 21
  • 34

1 Answers1

0

Most likely BMP is rejecting connections to the host because the certificate presented by https://10.203.9.156/login.html is not valid for that IP address. In both Embedded Mode and command-line/standalone/REST API mode, there is a trustAllServers option that will disable certificate checks. I'm not sure if the Python wrapper exposes that option; I'd suggest consulting the docs for the Pyhton wrapper, and submitting a PR if it doesn't.

Jason Hoetger
  • 5,650
  • 2
  • 13
  • 14