{"id":6207,"date":"2020-09-11T17:27:39","date_gmt":"2020-09-11T11:57:39","guid":{"rendered":"https:\/\/www.innovationm.com\/blog\/?p=6207"},"modified":"2020-09-11T17:27:39","modified_gmt":"2020-09-11T11:57:39","slug":"testing-via-charles-proxy","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/testing-via-charles-proxy\/","title":{"rendered":"Testing via Charles proxy"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Charles Proxy is a cross-platform HTTP debugging proxy server application written in Java.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">It acts as a middleman between the local computer and the internet. It enables the user to view HTTP, HTTPS and enabled TCP port traffic accessed via the local computer.\u00a0<\/span><\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone wp-image-6208 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/1.png\" alt=\"\" width=\"1586\" height=\"630\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/1.png 1586w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/1-300x119.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/1-1024x407.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/1-768x305.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/1-1536x610.png 1536w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/1-624x248.png 624w\" sizes=\"(max-width: 1586px) 100vw, 1586px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">It simply enables the user to view\/ monitor network calls and helps understand the content of the network call. The tool can read web traffic of windows, Android and IOS.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">eg: Let&#8217;s say you&#8217;re searching for something on Google, Charles acts as a mediator between you and Google and helps to monitor the server logs.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">These logs are very helpful when an application that needs a server is developed and tested.<\/span><\/p>\n<p><b>How to Configure Charles :\u00a0<\/b><\/p>\n<ol>\n<li><span style=\"font-weight: 400;\"> Install the Charles tool on your computer from the website &#8220;<\/span><a href=\"https:\/\/www.charlesproxy.com\/download\/latest-release\/\"><span style=\"font-weight: 400;\">https:\/\/www.charlesproxy.com\/download\/latest-release\/<\/span><\/a><span style=\"font-weight: 400;\">&#8220;.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> Install the Charles certificate on the device where you&#8217;re going to perform testing. If it is your local computer, Open Charles tool &gt; click on Help &gt; click SSL Proxying &gt; Install Charles certificate(Might get a warning that it is not a trusted agent). If testing is to be done on a website only, this all set up is required, further steps include setting it up for mobile testing.<\/span><img decoding=\"async\" class=\"alignnone wp-image-6209 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image11.png\" alt=\"\" width=\"1333\" height=\"750\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image11.png 1333w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image11-300x169.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image11-1024x576.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image11-768x432.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image11-624x351.png 624w\" sizes=\"(max-width: 1333px) 100vw, 1333px\" \/><\/li>\n<\/ol>\n<ol start=\"3\">\n<li><span style=\"font-weight: 400;\"> To install it on a mobile, simply visit &#8220;chls.pro\/ssl&#8221; and it&#8217;ll ask if you want to install the certificate on your device.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> There&#8217;s a precondition for mobile devices that it&#8217;ll only capture calls if the local system and the device are on the same network (If using a mobile hotspot to connect to the internet then the hosting device will not capture calls)<\/span><\/li>\n<li>Now if all the above requirements are met, go to the wifi settings and tap on the connected wifi network. Find proxy which by default is set to &#8220;None&#8221;. Change it to &#8220;Manual&#8221; and input Proxy Host name(on android) \/ server (on IOS) and Proxy port.\u00a0 <img decoding=\"async\" class=\"alignnone wp-image-6210 size-full\" style=\"font-size: 1rem;\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image3.png\" alt=\"\" width=\"749\" height=\"1335\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image3.png 749w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image3-168x300.png 168w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image3-575x1024.png 575w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image3-624x1112.png 624w\" sizes=\"(max-width: 749px) 100vw, 749px\" \/><span style=\"font-weight: 400;\">&gt;&gt;To find proxy host name\/ server and proxy port: On computer open Charles, click on help &gt;&gt; SSL proxying &gt;&gt; Install Charles root certificate on a mobile device or remote browser. It&#8217;ll open a pop-up containing information of host name\/ server and port number.<\/span><b>eg : Host\/ server 192.168.43.46 \/\/ Post 8888 \/\/ it&#8217;ll look something like this.<img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6211 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image8.png\" alt=\"\" width=\"1333\" height=\"750\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image8.png 1333w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image8-300x169.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image8-1024x576.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image8-768x432.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image8-624x351.png 624w\" sizes=\"(max-width: 1333px) 100vw, 1333px\" \/><\/b><\/li>\n<li><span style=\"font-weight: 400;\">Once you input that and hit save, it might show a pop-up on your computer to establish a connection. Now the setup part has completed.<\/span><\/li>\n<\/ol>\n<p><b style=\"font-size: 1rem;\">\u00a0How and why to use Charles proxy :<\/b><\/p>\n<p><b>Record session: <\/b><span style=\"font-weight: 400;\">Click on start recording and Charles tool will start capturing traffic by itself of the connected device showing you all the services being called as you keep using the app.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">With the press of every button, if there&#8217;s any web service being called, it&#8217;ll record that in the history table. By default, structure view will be selected but the user can switch with sequence view. In sequence view filter can be put as to which calls to record. Simply put in the URL of the API or keyword distinguishing your app being tested calls.<\/span><\/p>\n<p><b>Structure view:\u00a0 <\/b><span style=\"font-weight: 400;\">Containing all the device traffic<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6212 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image5.png\" alt=\"\" width=\"719\" height=\"1390\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image5.png 719w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image5-155x300.png 155w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image5-530x1024.png 530w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image5-624x1206.png 624w\" sizes=\"(max-width: 719px) 100vw, 719px\" \/><\/p>\n<p><b>Sequence view: <\/b><span style=\"font-weight: 400;\">I&#8217;ve put a filter so it&#8217;ll show only the calls related to selected API.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6213 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image2.png\" alt=\"\" width=\"1600\" height=\"230\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image2.png 1600w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image2-300x43.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image2-1024x147.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image2-768x110.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image2-1536x221.png 1536w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image2-624x90.png 624w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Now against each API selected it shows the information such as status code, request data, response data and many others.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6214 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image6.png\" alt=\"\" width=\"973\" height=\"1027\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image6.png 973w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image6-284x300.png 284w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image6-970x1024.png 970w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image6-768x811.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image6-624x659.png 624w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/image6-24x24.png 24w\" sizes=\"(max-width: 973px) 100vw, 973px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6215 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/2.png\" alt=\"\" width=\"1201\" height=\"832\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/2.png 1201w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/2-300x208.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/2-1024x709.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/2-768x532.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/2-624x432.png 624w\" sizes=\"(max-width: 1201px) 100vw, 1201px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Here you can check what was sent via the API and what response are you getting when a certain action is performed.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Via this, you can also check if any handling needs to be done on a certain action or not.<\/span><\/p>\n<p><b>Breakpoints<\/b><span style=\"font-weight: 400;\">: One can also put breakpoints onto certain API. Via breakpoint you are putting a condition that it is bound to fail. This can be used to test scenarios such as, what happens if an API fails, to check the validation if provided if API fails, to test the impact of that certain fail on other API etc.<\/span><\/p>\n<p><b>To put breakpoint: right click on the API and scroll down to find the breakpoint.<\/b><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6216 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/3.png\" alt=\"\" width=\"1333\" height=\"750\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/3.png 1333w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/3-300x169.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/3-1024x576.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/3-768x432.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/3-624x351.png 624w\" sizes=\"(max-width: 1333px) 100vw, 1333px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Now if a certain API\/ session is failing, one can simply save the session in a .chls extension and can directly be attached in a ticket on a bug tracking platform. The developer has to simply download that file and open it via Charles to check responses making it easy to understand.\u00a0<\/span><\/p>\n<p><b>Throttling:\u00a0 <\/b><span style=\"font-weight: 400;\">Network throttling is to simulate different network bandwidth conditions like 2G, 3G, 4G, and WIFI. It can also be used to simulate customized modem network speeds.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">It is useful when you have to test any application that has network dependencies or it will be useful to test how your application is behaving in different network conditions. You can customize the speed and other network conditions by clicking the Proxy menu &gt; Throttle settings.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6217 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/4.png\" alt=\"\" width=\"1333\" height=\"750\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/4.png 1333w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/4-300x169.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/4-1024x576.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/4-768x432.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/4-624x351.png 624w\" sizes=\"(max-width: 1333px) 100vw, 1333px\" \/><\/p>\n<p><b>Clear Button: <\/b><span style=\"font-weight: 400;\">As the name suggests it simply erases the previous sessions<\/span> <span style=\"font-weight: 400;\">and lets you create a new session.<\/span><\/p>\n<p><b>Repeat Button:<\/b><span style=\"font-weight: 400;\"> This button is to repeat a specific request. Once you click on this button, the request in the editor will be sent again. This feature comes handy when you want to recreate a request without performing the action again.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6218 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/5.png\" alt=\"\" width=\"1600\" height=\"134\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/5.png 1600w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/5-300x25.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/5-1024x86.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/5-768x64.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/5-1536x129.png 1536w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/5-624x52.png 624w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p><b>Map Local<\/b><span style=\"font-weight: 400;\">: Let&#8217;s say you want to change something in the request and check how it&#8217;ll affect your application. One can simply copy the request data, save it in a .json extension. Now open Charles &gt; Tools &gt; Enable Map Local. Now it&#8217;ll open something like<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Now click on add<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6219 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/6.png\" alt=\"\" width=\"1333\" height=\"750\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/6.png 1333w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/6-300x169.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/6-1024x576.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/6-768x432.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/6-624x351.png 624w\" sizes=\"(max-width: 1333px) 100vw, 1333px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6220 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/7.png\" alt=\"\" width=\"1333\" height=\"750\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/7.png 1333w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/7-300x169.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/7-1024x576.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/7-768x432.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/7-624x351.png 624w\" sizes=\"(max-width: 1333px) 100vw, 1333px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Under Map From, In Host, Put the URL of the application\/ website, it&#8217;ll automatically divide it into the host, port and all.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Under Map To Select the location of that saved .json file(with the changes done to the request) and click OK.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Now next time you run that app, it&#8217;ll fetch request data from that local file you have saved in your system and will only reflect on your system for the time being. This is helpful in testing negative scenarios.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Also, let&#8217;s say if the server is down, one can simply copy the requests and map it locally to test the application even when the server is not working. This is very helpful if let&#8217;s say in a company, servers get shut down on certain times but you need to test\/ develop regardless.\u00a0<\/span><\/p>\n<p><b>*Most importantly, it helps in distinguishing if its front-end issue or back-end issue saving time, confusion and effort while assigning issues to the concerned person.<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Another benefit is that the tester can monitor the back end structure of the application. So why to use it shouldn&#8217;t even be a question now, since it provides so many easy to use features that help in testing. One can learn a lot about the structure of the application, order of the web services, HTTP requests and many more. Other commonly used tools providing network traffic capturing includes postman and Fiddler.<\/span><\/p>\n<p><b>Note: <\/b><span style=\"font-weight: 400;\">Charles can be used for free or by purchasing its licence. For a free user, Charles will stop working after 30 min of usage so one has to restart it again. Also, there is some delay in the tool once you restart it. And also remember to change proxy to None from manual if not using Charles, as the internet will only work if Charles is on. If Charles is off, the internet stops working on the device.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Charles Proxy is a cross-platform HTTP debugging proxy server application written in Java. It acts as a middleman between the local computer and the internet. It enables the user to view HTTP, HTTPS and enabled TCP port traffic accessed via the local computer.\u00a0 It simply enables the user to view\/ monitor network calls and helps [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6221,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,3,71],"tags":[14,539],"class_list":["post-6207","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","category-ios","category-mobile","tag-innovationm","tag-testing-via-charles-proxy"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Testing via Charles proxy - InnovationM - Blog<\/title>\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.innovationm.com\/blog\/testing-via-charles-proxy\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Testing via Charles proxy - InnovationM - Blog\" \/>\n<meta property=\"og:description\" content=\"Charles Proxy is a cross-platform HTTP debugging proxy server application written in Java. It acts as a middleman between the local computer and the internet. It enables the user to view HTTP, HTTPS and enabled TCP port traffic accessed via the local computer.\u00a0 It simply enables the user to view\/ monitor network calls and helps [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/testing-via-charles-proxy\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-09-11T11:57:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/Charles-Tool.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InnovationM Admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InnovationM Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/testing-via-charles-proxy\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/testing-via-charles-proxy\\\/\"},\"author\":{\"name\":\"InnovationM Admin\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"headline\":\"Testing via Charles proxy\",\"datePublished\":\"2020-09-11T11:57:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/testing-via-charles-proxy\\\/\"},\"wordCount\":1227,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/testing-via-charles-proxy\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/Charles-Tool.png\",\"keywords\":[\"InnovationM\",\"Testing via Charles proxy\"],\"articleSection\":[\"Android\",\"iOS\",\"Mobile\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/testing-via-charles-proxy\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/testing-via-charles-proxy\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/testing-via-charles-proxy\\\/\",\"name\":\"Testing via Charles proxy - InnovationM - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/testing-via-charles-proxy\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/testing-via-charles-proxy\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/Charles-Tool.png\",\"datePublished\":\"2020-09-11T11:57:39+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/testing-via-charles-proxy\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/testing-via-charles-proxy\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/testing-via-charles-proxy\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/Charles-Tool.png\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/Charles-Tool.png\",\"width\":960,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/testing-via-charles-proxy\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Testing via Charles proxy\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\",\"name\":\"InnovationM - Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\",\"name\":\"InnovationM Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"caption\":\"InnovationM Admin\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/innovationmadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Testing via Charles proxy - InnovationM - Blog","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.innovationm.com\/blog\/testing-via-charles-proxy\/","og_locale":"en_US","og_type":"article","og_title":"Testing via Charles proxy - InnovationM - Blog","og_description":"Charles Proxy is a cross-platform HTTP debugging proxy server application written in Java. It acts as a middleman between the local computer and the internet. It enables the user to view HTTP, HTTPS and enabled TCP port traffic accessed via the local computer.\u00a0 It simply enables the user to view\/ monitor network calls and helps [&hellip;]","og_url":"https:\/\/www.innovationm.com\/blog\/testing-via-charles-proxy\/","og_site_name":"InnovationM - Blog","article_published_time":"2020-09-11T11:57:39+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/Charles-Tool.png","type":"image\/png"}],"author":"InnovationM Admin","twitter_misc":{"Written by":"InnovationM Admin","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/testing-via-charles-proxy\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/testing-via-charles-proxy\/"},"author":{"name":"InnovationM Admin","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"headline":"Testing via Charles proxy","datePublished":"2020-09-11T11:57:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/testing-via-charles-proxy\/"},"wordCount":1227,"commentCount":0,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/testing-via-charles-proxy\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/Charles-Tool.png","keywords":["InnovationM","Testing via Charles proxy"],"articleSection":["Android","iOS","Mobile"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/testing-via-charles-proxy\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/testing-via-charles-proxy\/","url":"https:\/\/www.innovationm.com\/blog\/testing-via-charles-proxy\/","name":"Testing via Charles proxy - InnovationM - Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/testing-via-charles-proxy\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/testing-via-charles-proxy\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/Charles-Tool.png","datePublished":"2020-09-11T11:57:39+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/testing-via-charles-proxy\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/testing-via-charles-proxy\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/testing-via-charles-proxy\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/Charles-Tool.png","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/09\/Charles-Tool.png","width":960,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/testing-via-charles-proxy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Testing via Charles proxy"}]},{"@type":"WebSite","@id":"https:\/\/www.innovationm.com\/blog\/#website","url":"https:\/\/www.innovationm.com\/blog\/","name":"InnovationM - Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innovationm.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed","name":"InnovationM Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","caption":"InnovationM Admin"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/innovationmadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/6207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=6207"}],"version-history":[{"count":0,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/6207\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/6221"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=6207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=6207"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=6207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}