<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nghia Tran</title>
    <description>The latest articles on DEV Community by Nghia Tran (@nghiatranuit).</description>
    <link>https://dev.to/nghiatranuit</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F157526%2Fe2cf90cb-cacf-4908-844a-d210bb1b15d5.jpeg</url>
      <title>DEV Community: Nghia Tran</title>
      <link>https://dev.to/nghiatranuit</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nghiatranuit"/>
    <language>en</language>
    <item>
      <title>Convert Charles Proxy log to Proxyman</title>
      <dc:creator>Nghia Tran</dc:creator>
      <pubDate>Sat, 04 Jul 2020 02:59:24 +0000</pubDate>
      <link>https://dev.to/nghiatranuit/convert-charles-proxy-log-to-proxyman-2eda</link>
      <guid>https://dev.to/nghiatranuit/convert-charles-proxy-log-to-proxyman-2eda</guid>
      <description>&lt;p&gt;It's the mini blog on how to convert &lt;a href="https://www.charlesproxy.com"&gt;Charles&lt;/a&gt; log (*.chls) to &lt;a href="https://proxyman.io"&gt;Proxyman&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It's a handy feature if you have a bunch of error log that you've already captured from Charles and would like to investigate or migrate to the Proxyman app.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;Fortunately, Charles has a built-in command that allows us to convert the CHLS file to the HAR format that Proxyman can understand. Thus, please make sure that you have this app on your machine.&lt;/p&gt;

&lt;p&gt;FYI: We can manually convert by executing this command on Terminal&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./Applications/Charles.app/Contents/MacOS/Charles convert ~/Desktop/input.chls ~/Desktop/output.har
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  How to use
&lt;/h2&gt;

&lt;p&gt;\1. Export Charles Session: We can export the current session in two ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Right-click on the selected requests -&amp;gt; Export Session -&amp;gt; Select *.chls format -&amp;gt; Save&lt;/li&gt;
&lt;li&gt;or File menu -&amp;gt; Export Session as... -&amp;gt; Select *.chls format -&amp;gt; Save&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UutdYdTa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/uosmv3lnxs4eoagzqsqt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UutdYdTa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/uosmv3lnxs4eoagzqsqt.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;\2. Drag and Drop to Proxyman app&lt;/p&gt;

&lt;p&gt;You can drag and drop the file to Proxyman app&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dvCByI1b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/cehu1lsvzb8godr3b02n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dvCByI1b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/cehu1lsvzb8godr3b02n.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;\3. At the first time you've used this feature, Proxyman would prompt the warning to make sure you're aware that Proxyman will use Charles to convert automatically.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bWuKCsR7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/k03en8wg3brxpx5ufgvx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bWuKCsR7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/k03en8wg3brxpx5ufgvx.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If Charles app doesn't install on your Mac, Proxyman would prompt the alert.&lt;/p&gt;

&lt;p&gt;\4. All done&lt;/p&gt;

&lt;p&gt;At this step, Proxyman will find the default Charles app path and trigger the command to convert the file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uSYz_74H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/sab21pfsvqueqj6oh6pv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uSYz_74H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/sab21pfsvqueqj6oh6pv.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From here, we can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Repeat &amp;amp; Edit the request for testing&lt;/li&gt;
&lt;li&gt;Set rule for Map Local &amp;amp; Breakpoint&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Proxyman is a high-performance macOS app, which enables developers to view HTTP/HTTPS requests from apps and domains on iOS devices, iOS Simulator, and Android devices.&lt;/p&gt;

&lt;p&gt;Get it at &lt;a href="https://proxyman.io"&gt;https://proxyman.io&lt;/a&gt;&lt;/p&gt;

</description>
      <category>proxyman</category>
      <category>charles</category>
      <category>ios</category>
      <category>android</category>
    </item>
    <item>
      <title>Debugging Product Hunt on Firefox with Proxyman</title>
      <dc:creator>Nghia Tran</dc:creator>
      <pubDate>Thu, 23 Jan 2020 04:01:24 +0000</pubDate>
      <link>https://dev.to/nghiatranuit/debugging-product-hunt-on-firefox-with-proxyman-3254</link>
      <guid>https://dev.to/nghiatranuit/debugging-product-hunt-on-firefox-with-proxyman-3254</guid>
      <description>&lt;p&gt;In this tutorial, we would share how we quickly capture and debug HTTPS requests from &lt;a href="https://www.producthunt.com"&gt;Product Hunt&lt;/a&gt; page via Firefox Browser.&lt;/p&gt;

&lt;p&gt;From there, we can achieve several following tasks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quickly filter the request&lt;/li&gt;
&lt;li&gt;See the HTTP/HTTPS request and message in a prettier format &lt;/li&gt;
&lt;li&gt;Quickly change the param and test the production.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  1. Proxyman
&lt;/h3&gt;

&lt;p&gt;Proxyman is a Web Debugging Proxy and exclusively built for macOS. Basically, it can help you (developers) to debug out-going HTTP/HTTPS requests easily than looking via Console Inspector.&lt;/p&gt;

&lt;p&gt;You can quickly download Proxyman from &lt;a href="https://proxyman.io"&gt;homepage&lt;/a&gt; or execute&lt;br&gt;
&lt;br&gt;
 &lt;code&gt;brew cask install proxyman&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Then, we have to install the Proxyman Certificate via &lt;strong&gt;Certificate Menu&lt;/strong&gt; -&amp;gt; &lt;strong&gt;Install Certificate on this mac...&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;and following the automation steps to install the certificate in a second.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6bBBlr5n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/w0y41uiazc2829uko0ie.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6bBBlr5n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/w0y41uiazc2829uko0ie.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Install Proxyman Certificate on Firefox
&lt;/h3&gt;

&lt;p&gt;It's crucial since Firefox has its Keychain instead of using the System Keychain. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open proxy.man/ssl (It's a local server) in Firefox, trust and install the certificate properly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ni1WuuY2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/fjvppfi13ly2o4bmmpsv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ni1WuuY2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/fjvppfi13ly2o4bmmpsv.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you don't see any Firefox request on Proxyman or couldn't access to proxy.man/ssl, please double-check the Firefox Proxy Setting in Preference.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The simple solution is that we select System Proxy Setting&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UV-oYB3_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/r5wwdiwk0o79unsn3kbz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UV-oYB3_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/r5wwdiwk0o79unsn3kbz.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Open &lt;a href="https://www.producthunt.com"&gt;https://www.producthunt.com&lt;/a&gt; in Firefox
&lt;/h3&gt;

&lt;p&gt;As soon as you open the website in Firefox, it will list out in the Proxyman app like the following image.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tbb3wF7V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ffq1biubpae9a5temzre.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tbb3wF7V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ffq1biubpae9a5temzre.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Additionally, Proxyman comes with plenty of handy tools. Let start filtering and enable &lt;strong&gt;HTTPS Response&lt;/strong&gt; on the &lt;strong&gt;producthunt&lt;/strong&gt; domain.&lt;/p&gt;

&lt;p&gt;After enabling, please make sure we reload the page again to get the updated content 👏&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Start debugging
&lt;/h3&gt;

&lt;p&gt;In these steps, we can see the HTTPS Content.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pj8t6mfa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/jk7k7fk9d3f84jyfsyc1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pj8t6mfa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/jk7k7fk9d3f84jyfsyc1.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let try a few handy tools by right-clicking on the request.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--agLw51Bq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/fymq2hypyp7bw2fs7b6j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--agLw51Bq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/fymq2hypyp7bw2fs7b6j.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is the tool list:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Repeat: Repeat it to get new content&lt;/li&gt;
&lt;li&gt;Repeat &amp;amp; Edit: Able to change the query, header and test it out&lt;/li&gt;
&lt;li&gt;Local Map: Able to map the given local file as the response&lt;/li&gt;
&lt;li&gt;Breakpoint: Set a breakpoint on the request or response and change the data on-the-fly.&lt;/li&gt;
&lt;li&gt;and too many tools, which are waiting for you to discover 💪&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>firefox</category>
      <category>debugging</category>
      <category>ios</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
