{"id":18313,"date":"2017-09-04T12:15:00","date_gmt":"2017-09-04T09:15:00","guid":{"rendered":"http:\/\/www.webcodegeeks.com\/?p=18313"},"modified":"2017-09-11T11:05:26","modified_gmt":"2017-09-11T08:05:26","slug":"capturing-http-requests-using-browsermobproxy","status":"publish","type":"post","link":"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/","title":{"rendered":"Capturing HTTP requests using BrowserMobProxy"},"content":{"rendered":"<h2>1. BrowserMob Proxy<\/h2>\n<p><code>Browsermob<\/code> proxy is a developers utility that helps to monitor network traffic of a web application. It is a technology that is developed under the <a href=\"http:\/\/www.seleniumhq.org\">Selenium open source project<\/a>. It is originally called and<code>Browser Mob<\/code> is now a part of <a href=\"https:\/\/home.wpm.neustar.biz\">Neustar<\/a>.<\/p>\n<p>A proxy is an (Apache 2.0 license) utility that can be used with Selenium or otherwise can be used independently as well.<\/p>\n<p>Browsermob allows you to manipulate HTTP requests and response, capture the HTTP content and export the data as a <a href=\"http:\/\/www.softwareishard.com\/blog\/har-12-spec\/\">HAR<\/a> object, also known as\u00a0<code>HTTP archive<\/code>.<\/p>\n<h2>2. Configuring BrowserMob proxy with selenium<\/h2>\n<p>Configuring BrowserMob proxy for the automation process will run your selenium scripts behind a proxy server. To configure browser-mob proxy you would need to do the following:<\/p>\n<h3>2.1 Browsermob Proxy library<\/h3>\n<p>Get the browser-mob proxy library from <a href=\"https:\/\/bmp.lightbody.net\">here<\/a>. You are going to need this to create the proxy server. Download it and keep a copy of the browser-mob proxy in the project directory.<\/p>\n<h3>2.2 Python dependency for BrowserMob proxy<\/h3>\n<p>Use pip to install python dependency for the browser-mob proxy. To install the dependency just type in <code>pip install browsermob-proxy<\/code>.<\/p>\n<h3>2.3 Creating a server and instantiating a proxy instance<\/h3>\n<p>First of all, you need to create a server. Browsermob already has the configuration for Jetty server. You have to instantiate the server by giving the path for browser mob-proxy inside the browser mob-proxy\/bin directory. By default, the Jetty server would be running on port 8080. The jetty server is a Java based Web Server with a servlet container. It helps in addressing requests and responses through the servlet container.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Instantiating a browser-mob server<\/em><\/span><\/p>\n<pre class=\"brush:python\"># Configure proxy server and return server object\r\ndef configure_proxy_server(self):\r\n    server = Server(\"browsermob-proxy\/bin\/browsermob-proxy\")\r\n    return server<\/pre>\n<h3>2.4 Instantiating a proxy from the server<\/h3>\n<p>Once the Jetty server is up and running, next a proxy needs to be created using the server instance of Jetty.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Creating a proxy<\/em><\/span><\/p>\n<pre class=\"brush:python\"># Configure proxy using the server object and return proxy object\r\ndef configure_proxy(self, server):\r\n  server.start()\r\n  proxy = server.create_proxy()\r\n  return proxy<\/pre>\n<h4>2.4.1 Configuring browser driver with proxy server configurations<\/h4>\n<p>Pass on the proxy configuration to the respective web driver object, so that it starts using the proxy of the jetty server of Browsermob rather than the proxy of the selenium server.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Configuring Chrome driver with proxy server configuration<\/em><\/span><\/p>\n<pre class=\"brush:python\"># Configure selenium driver and return driver object\r\ndef configure_driver(self, proxy_data):\r\n  try:\r\n    co = webdriver.ChromeOptions()\r\n    co.add_argument('--proxy-server={host}:{port}'.format(host='localhost', \r\n                                                          port=proxy_data.port))\r\n    driver = webdriver.Chrome(executable_path = \"\/usr\/local\/bin\/chromedriver\", \r\n                                                          chrome_options=co)\r\n    return driver\r\n  except WebDriverException as e:\r\n    print(\"&gt;&gt;&gt;WebDriver exception: {}\".format(e))<\/pre>\n<h3>2.5 Storing the HTTP requests as HAR object<\/h3>\n<p>The outgoing HTTP requests from the browser can be stored in the HAR or Http Archive format. At the end of the execution, you can iterate the HAR object to get the HTTP requests. Also, you can also store the respective data in a <code>.har<\/code>\u00a0file. Once the file<code>.har<\/code> is created you can use Google <a href=\"https:\/\/toolbox.googleapps.com\/apps\/har_analyzer\/\">GSuite Analyzer<\/a> to track the respective performance or monitor the site.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Assembling the HTTP requests and storing it as har object<\/em><\/span><\/p>\n<pre class=\"brush:python\"># Track network traffic\r\ndef get_networkTraffic(self, server, proxy_data, driver):\r\n    try:\r\n        input_url = raw_input(\"&gt;&gt;&gt;Enter the url to be checked for network traffic: \")\r\n        request = requests.get(input_url)\r\n        response_code = request.status_code\r\n        # Store the http requests as har object\r\n        if response_code == 200:\r\n            proxy_data.new_har(\"google\")\r\n            driver.get(input_url)\r\n            proxy_data.har\r\n            for ent in proxy_data.har['log']['entries']:\r\n                print(ent['request']['url'])\r\n        else:\r\n            print(\"&gt;&gt;&gt;Status code: \"+str(response_code))\r\n        driver.quit()\r\n        server.stop()\r\n    except requests.exceptions.RequestException as e:\r\n        print(\"&gt;&gt;&gt;Request Exception: {}\".format(e))<\/pre>\n<h2>3. SSL Support<\/h2>\n<p>You have to explicitly set up the <code>ca-certificate-rsa.cer<\/code> for your respective browser. I have set up the certificate for Chrome browser. Without this the requests cannot be made over secure socket layer. To set up the certificate just open chrome browser goto <code>settings<\/code> > <code>advanced<\/code> > <code>Privacy & Security<\/code> > <code>Manage Certificates<\/code>. If you are working on OSX platform, you will get the KeyChain Access window. Just add the <code>ca-certificate-rsa.cer<\/code>. Once added, just click on &#8216;Trust&#8217; and select the option &#8216;Always Trust&#8217; and save the configuration by giving the root password. You will be able to find the <code>ca-certificate-rsa.cer<\/code> within the repository itself.<\/p>\n<h2>4. Download the Source Code<\/h2>\n<p>This was an example of Capturing HTTP requests using BrowserMobProxy.<\/p>\n<div class=\"download\"><strong>Download<\/strong><br \/>\nYou can download the full source code of this example here : <a href=\"https:\/\/bitbucket.org\/CodersDen\/pythonautomation\/src\/380359ff224f5cfc9d381fe2635a7f2ca5091e92\/BrowsermobProxy.py?at=master&amp;fileviewer=file-view-default\" target=\"_blank\" rel=\"noopener\"><strong>Using BrowserMobProxy with Selenium<\/strong><\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>1. BrowserMob Proxy Browsermob proxy is a developers utility that helps to monitor network traffic of a web application. It is a technology that is developed under the Selenium open source project. It is originally called andBrowser Mob is now a part of Neustar. A proxy is an (Apache 2.0 license) utility that can be &hellip;<\/p>\n","protected":false},"author":1029,"featured_media":1651,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[53],"tags":[],"class_list":["post-18313","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Capturing HTTP requests using BrowserMobProxy - Web Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"1. BrowserMob Proxy Browsermob proxy is a developers utility that helps to monitor network traffic of a web application. It is a technology that is\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Capturing HTTP requests using BrowserMobProxy - Web Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"1. BrowserMob Proxy Browsermob proxy is a developers utility that helps to monitor network traffic of a web application. It is a technology that is\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webcodegeeks\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/soumyajit.basu\" \/>\n<meta property=\"article:published_time\" content=\"2017-09-04T09:15:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-09-11T08:05:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Soumyajit Basu\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SoumyajitBasu19\" \/>\n<meta name=\"twitter:site\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Soumyajit Basu\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/\"},\"author\":{\"name\":\"Soumyajit Basu\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/c2aa0b158203f117998917927a96c276\"},\"headline\":\"Capturing HTTP requests using BrowserMobProxy\",\"datePublished\":\"2017-09-04T09:15:00+00:00\",\"dateModified\":\"2017-09-11T08:05:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/\"},\"wordCount\":542,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg\",\"articleSection\":[\"Python\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/\",\"name\":\"Capturing HTTP requests using BrowserMobProxy - Web Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg\",\"datePublished\":\"2017-09-04T09:15:00+00:00\",\"dateModified\":\"2017-09-11T08:05:26+00:00\",\"description\":\"1. BrowserMob Proxy Browsermob proxy is a developers utility that helps to monitor network traffic of a web application. It is a technology that is\",\"breadcrumb\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/#primaryimage\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.webcodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python\",\"item\":\"https:\/\/www.webcodegeeks.com\/category\/python\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Capturing HTTP requests using BrowserMobProxy\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"name\":\"Web Code Geeks\",\"description\":\"Web Developers Resource Center\",\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.webcodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webcodegeeks\",\"https:\/\/x.com\/webcodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/c2aa0b158203f117998917927a96c276\",\"name\":\"Soumyajit Basu\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ca834774616f992a60dd418c3424f7d678f645d0974d880abe735f481c8b1407?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ca834774616f992a60dd418c3424f7d678f645d0974d880abe735f481c8b1407?s=96&d=mm&r=g\",\"caption\":\"Soumyajit Basu\"},\"description\":\"Soumyajit is a QA\/DevOps engineer by profession and a technology enthusiast by passion. He loves communicating about technology and is an author at his own blog platform as well as in Dzone and Web Code Geeks.\",\"sameAs\":[\"https:\/\/soumyajit2016.wordpress.com\/\",\"https:\/\/www.facebook.com\/soumyajit.basu\",\"https:\/\/www.linkedin.com\/in\/soumyajit-basu-5a783886\/\",\"https:\/\/x.com\/SoumyajitBasu19\"],\"url\":\"https:\/\/www.webcodegeeks.com\/author\/soumyajit-basu\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Capturing HTTP requests using BrowserMobProxy - Web Code Geeks - 2026","description":"1. BrowserMob Proxy Browsermob proxy is a developers utility that helps to monitor network traffic of a web application. It is a technology that is","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/","og_locale":"en_US","og_type":"article","og_title":"Capturing HTTP requests using BrowserMobProxy - Web Code Geeks - 2026","og_description":"1. BrowserMob Proxy Browsermob proxy is a developers utility that helps to monitor network traffic of a web application. It is a technology that is","og_url":"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/","og_site_name":"Web Code Geeks","article_publisher":"https:\/\/www.facebook.com\/webcodegeeks","article_author":"https:\/\/www.facebook.com\/soumyajit.basu","article_published_time":"2017-09-04T09:15:00+00:00","article_modified_time":"2017-09-11T08:05:26+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg","type":"image\/jpeg"}],"author":"Soumyajit Basu","twitter_card":"summary_large_image","twitter_creator":"@SoumyajitBasu19","twitter_site":"@webcodegeeks","twitter_misc":{"Written by":"Soumyajit Basu","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/#article","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/"},"author":{"name":"Soumyajit Basu","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/c2aa0b158203f117998917927a96c276"},"headline":"Capturing HTTP requests using BrowserMobProxy","datePublished":"2017-09-04T09:15:00+00:00","dateModified":"2017-09-11T08:05:26+00:00","mainEntityOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/"},"wordCount":542,"commentCount":1,"publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg","articleSection":["Python"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/","url":"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/","name":"Capturing HTTP requests using BrowserMobProxy - Web Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/#primaryimage"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg","datePublished":"2017-09-04T09:15:00+00:00","dateModified":"2017-09-11T08:05:26+00:00","description":"1. BrowserMob Proxy Browsermob proxy is a developers utility that helps to monitor network traffic of a web application. It is a technology that is","breadcrumb":{"@id":"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/#primaryimage","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.webcodegeeks.com\/python\/capturing-http-requests-using-browsermobproxy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.webcodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Python","item":"https:\/\/www.webcodegeeks.com\/category\/python\/"},{"@type":"ListItem","position":3,"name":"Capturing HTTP requests using BrowserMobProxy"}]},{"@type":"WebSite","@id":"https:\/\/www.webcodegeeks.com\/#website","url":"https:\/\/www.webcodegeeks.com\/","name":"Web Code Geeks","description":"Web Developers Resource Center","publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.webcodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.webcodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.webcodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webcodegeeks","https:\/\/x.com\/webcodegeeks"]},{"@type":"Person","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/c2aa0b158203f117998917927a96c276","name":"Soumyajit Basu","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ca834774616f992a60dd418c3424f7d678f645d0974d880abe735f481c8b1407?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ca834774616f992a60dd418c3424f7d678f645d0974d880abe735f481c8b1407?s=96&d=mm&r=g","caption":"Soumyajit Basu"},"description":"Soumyajit is a QA\/DevOps engineer by profession and a technology enthusiast by passion. He loves communicating about technology and is an author at his own blog platform as well as in Dzone and Web Code Geeks.","sameAs":["https:\/\/soumyajit2016.wordpress.com\/","https:\/\/www.facebook.com\/soumyajit.basu","https:\/\/www.linkedin.com\/in\/soumyajit-basu-5a783886\/","https:\/\/x.com\/SoumyajitBasu19"],"url":"https:\/\/www.webcodegeeks.com\/author\/soumyajit-basu\/"}]}},"_links":{"self":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/18313","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/users\/1029"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/comments?post=18313"}],"version-history":[{"count":0,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/18313\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media\/1651"}],"wp:attachment":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media?parent=18313"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/categories?post=18313"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/tags?post=18313"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}