<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>http Archives | ZappySys Blog</title>
	<atom:link href="https://zappysys.com/blog/tag/http/feed/" rel="self" type="application/rss+xml" />
	<link>https://zappysys.com/blog/tag/http/</link>
	<description>SSIS / ODBC Drivers / API Connectors for JSON, XML, Azure, Amazon AWS, Salesforce, MongoDB and more</description>
	<lastBuildDate>Tue, 03 Dec 2024 16:45:33 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.4</generator>

<image>
	<url>https://zappysys.com/blog/wp-content/uploads/2023/01/cropped-zappysys-symbol-large-32x32.png</url>
	<title>http Archives | ZappySys Blog</title>
	<link>https://zappysys.com/blog/tag/http/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How to read Walmart API data in SSIS / ODBC</title>
		<link>https://zappysys.com/blog/read-walmart-api-data-ssis-odbc/</link>
		
		<dc:creator><![CDATA[ZappySys]]></dc:creator>
		<pubDate>Wed, 10 Jul 2019 12:45:13 +0000</pubDate>
				<category><![CDATA[ODBC PowerPack]]></category>
		<category><![CDATA[REST API]]></category>
		<category><![CDATA[SSIS JSON Source (File/REST)]]></category>
		<category><![CDATA[SSIS Logging Task]]></category>
		<category><![CDATA[XML File / SOAP API Driver]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[dynamic]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[logging]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[ssis]]></category>
		<category><![CDATA[Task]]></category>
		<category><![CDATA[Token]]></category>
		<category><![CDATA[Walmart]]></category>
		<category><![CDATA[ZappySys]]></category>
		<guid isPermaLink="false">https://zappysys.com/blog/?p=7380</guid>

					<description><![CDATA[<p>Introduction In this article, we will see how to read Walmart API data in SSIS and load into SQL Server. This blog mainly focuses on SSIS approach but steps mentioned to call Walmart APIs can be useful for any developer regardless of which programming language or toolset you use. Are you a Walmart.com Supplier or Marketplace [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/read-walmart-api-data-ssis-odbc/">How to read Walmart API data in SSIS / ODBC</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2><span id="Introduction">Introduction</span></h2>
<p><img decoding="async" class="alignnone size-full wp-image-7381 alignleft" src="https://zappysys.com/blog/wp-content/uploads/2019/07/Walmart-150x150.jpg" alt="" width="128" height="128" srcset="https://zappysys.com/blog/wp-content/uploads/2019/07/Walmart-150x150.jpg 150w, https://zappysys.com/blog/wp-content/uploads/2019/07/Walmart.jpg 200w" sizes="(max-width: 128px) 100vw, 128px" />In this article, we will see how to read Walmart API data in SSIS and load into SQL Server. This blog mainly focuses on SSIS approach but steps mentioned to call Walmart APIs can be useful for any developer regardless of which programming language or toolset you use.</p>
<p>Are you a Walmart.com Supplier or Marketplace Seller? Then you may need to <a href="https://developer.walmart.com/">click here</a> to visit the site that is focused on these profiles.</p>
<p>&nbsp;</p>
<h2><span id="Prerequisites">Prerequisites</span></h2>
<p>Before we perform the steps listed in this article, you will need to make sure the following prerequisites are met:</p>
<ol>
<li><abbr title="SQL Server Integration Services">SSIS</abbr> designer installed. Sometimes it is referred to as <abbr title="Business Intelligence Development Studio">BIDS</abbr> or <abbr title="SQL Server Data Tools">SSDT</abbr> (<a href="https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt" target="_blank" rel="noopener">download it from Microsoft site</a>).</li>
<li>Basic knowledge of SSIS package development using <em>Microsoft SQL Server Integration Services</em>.</li>
<li>Make sure <a href="https://zappysys.com/products/ssis-powerpack/" target="_blank" rel="noopener">ZappySys SSIS PowerPack</a> is installed (<a href="https://zappysys.com/products/ssis-powerpack/download/" target="_blank" rel="noopener">download it</a>).</li>
<li>Credentials of Walmart API. Click <a href="https://developer.walmartlabs.com/" target="_blank" rel="noopener">here</a> to create API.</li>
</ol>
<h2>Components Mentioned in this article</h2>
<div class="su-table su-table-alternate">
<table style="height: 44px;width: 307px">
<tbody>
<tr style="height: 22px">
<td style="width: 1px;height: 22px"><img loading="lazy" decoding="async" class="alignnone size-medium_large" src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/logging-task/ssis-logging-task.png" width="40" height="40" /></td>
<td style="width: 247px;height: 22px"><a href="https://zappysys.com/onlinehelp/ssis-powerpack/scr/ssis-logging-task.htm" target="_blank" rel="noopener">ZS Logging Task</a></td>
</tr>
<tr style="height: 22px">
<td style="height: 22px;width: 1px"><a href="https://zappysys.com/blog/wp-content/uploads/2016/01/SSIS-Json-Source-Adapter.png"><img loading="lazy" decoding="async" class="alignnone wp-image-3074" src="https://zappysys.com/blog/wp-content/uploads/2016/01/SSIS-Json-Source-Adapter.png" alt="" width="40" height="40" /></a></td>
<td style="height: 22px;width: 247px"><a href="https://zappysys.com/onlinehelp/ssis-powerpack/scr/json-source.htm" target="_blank" rel="noopener">JSON Source(REST API or File)</a></td>
</tr>
</tbody>
</table>
</div>
<h2><span id="What_is_WordPress">What is Walmart?</span></h2>
<p>Walmart is the world&#8217;s largest retailer, and the Walmart Open API provides access to our extensive product catalog, thus enabling digital distribution partners to earn substantial affiliate revenues from customer referrals.</p>
<h2><span id="Read_data_fromWordPressusing_SSIS_JSON_Source">Read Walmart API Data using SSIS JSON Source</span></h2>
<p>Let’s start with an example. We use SSIS JSON Source component to make the call to Walmart API, we will read Walmart data and load into SQL Server. First of All, Open Visual Studio and Create New SSIS Package Project.</p>
<h3><span id="Step-1_GetDynamic_Token_Configure_ZS-HTTP_Connection">Get Dynamic Token (Configure ZS-HTTP Connection)</span></h3>
<p>To get API response data using SOAP / REST API call, you need to get an API Token from your login request URL. Follow the steps mentioned below to get API Token:</p>
<ol>
<li>Now, Right Click on Connection Managers Window, and one Context menu appears for creating a new connection manager.
<div style="width: 740px" class="wp-caption aligncenter"><a href="https://i2.wp.com/zappysys.com/blog/wp-content/uploads/2018/07/ssis-connection-manager-create-new-connection-e1531164541889.png?w=730&amp;ssl=1" target="_blank" rel="noopener"><img loading="lazy" decoding="async" src="https://i2.wp.com/zappysys.com/blog/wp-content/uploads/2018/07/ssis-connection-manager-create-new-connection-e1531164541889.png?w=730&amp;ssl=1" alt="Create a New HTTP Connection." width="730" height="444" /></a><p class="wp-caption-text">Create a New HTTP Connection.</p></div></li>
<li>Select ZS HTTP Connection Manager from the list of Connection Managers and, double-click on it or click on Add button to add a new Connection Manager. By Default, The created connection manager is of Package-Level. You can set Project Level Connection manager too If you want.
<div style="width: 597px" class="wp-caption aligncenter"><a href="https://i2.wp.com/zappysys.com/blog/wp-content/uploads/2018/07/ssis-connection-manager-select-http-connection-manager-to-add.png?w=587&amp;ssl=1" target="_blank" rel="noopener"><img loading="lazy" decoding="async" src="https://i2.wp.com/zappysys.com/blog/wp-content/uploads/2018/07/ssis-connection-manager-select-http-connection-manager-to-add.png?w=587&amp;ssl=1" alt="Select ZS-HTTP Connection from SSIS Connection Manager." width="587" height="634" /></a><p class="wp-caption-text">Select ZS-HTTP Connection from SSIS Connection Manager.</p></div></li>
<li>In the SSIS ZS HTTP Connection Manager, Go to General Tab and Configure HTTP Connection Manager. Enter API URL, Set Credentials Type to Dynamic Token &#8211; Two-Step Auth, and configure some basic settings for the same. We used Login URL as just example but you can enter any valid API URL endpoint here. Actual Login URL goes on Dynamic Token Tab (see next step).<br />
<pre class="crayon-plain-tag">https://marketplace.walmartapis.com/v3/items?nextCursor=*&amp;offset=2000&amp;limit=20</pre>
<pre class="crayon-plain-tag">WM_SEC.ACCESS_TOKEN</pre>
<div id="attachment_7418" style="width: 730px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-http-connection-dynamic-token.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7418" class="wp-image-7418 size-medium_large" src="https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-http-connection-dynamic-token-768x521.png" alt="ZS HTTP Connection - Configure General Tab" width="720" height="488" srcset="https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-http-connection-dynamic-token-768x521.png 768w, https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-http-connection-dynamic-token-300x203.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-http-connection-dynamic-token.png 814w" sizes="(max-width: 720px) 100vw, 720px" /></a><p id="caption-attachment-7418" class="wp-caption-text">ZS HTTP Connection &#8211; Configure General Tab</p></div></li>
<li>Now, In the Dynamic Token Tab do configure like below image. Please click <a href="https://developer.walmart.com/#/apicenter/marketPlace/latest#getToken" target="_blank" rel="noopener">here</a> to refer about Walmart API Token.<br />
<pre class="crayon-plain-tag">https://marketplace.walmartapis.com/v3/token</pre>
<pre class="crayon-plain-tag">grant_type=client_credentials</pre>
<pre class="crayon-plain-tag">Accept: application/json
Cache-Control: no-cache
WM_SVC.NAME: Walmart Marketplace
WM_QOS.CORRELATION_ID: TokenId_&lt;&lt;yyyy-MM-ddTHH:mm:ss.fffZ,FUN_GETDATE_UTC&gt;&gt;
Authorization: Basic &lt;&lt;[$userid$]:[$password$],FUN_BASE64ENC&gt;&gt;</pre>
<div id="attachment_7454" style="width: 730px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-http-connection-dynamic-token-configure.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7454" class="wp-image-7454 size-medium_large" src="https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-http-connection-dynamic-token-configure-768x668.png" alt="ZS HTTP Connection - Dynamic Token Tab" width="720" height="626" srcset="https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-http-connection-dynamic-token-configure-768x668.png 768w, https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-http-connection-dynamic-token-configure-300x261.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-http-connection-dynamic-token-configure.png 854w" sizes="(max-width: 720px) 100vw, 720px" /></a><p id="caption-attachment-7454" class="wp-caption-text">ZS HTTP Connection &#8211; Dynamic Token Tab</p></div></li>
<li>On the <strong>Response Settings</strong> tab configure as below
<div id="attachment_7706" style="width: 598px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2019/07/wallmart-api-extract-token-from-response.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7706" class="size-full wp-image-7706" src="https://zappysys.com/blog/wp-content/uploads/2019/07/wallmart-api-extract-token-from-response.png" alt="Walmart API - Extract Token - Response Settings" width="588" height="383" srcset="https://zappysys.com/blog/wp-content/uploads/2019/07/wallmart-api-extract-token-from-response.png 588w, https://zappysys.com/blog/wp-content/uploads/2019/07/wallmart-api-extract-token-from-response-300x195.png 300w" sizes="(max-width: 588px) 100vw, 588px" /></a><p id="caption-attachment-7706" class="wp-caption-text">Walmart API &#8211; Extract Token &#8211; Response Settings</p></div>
<ol>
<li>Extract Mode = <strong>Extract from Body </strong></li>
<li>Expression Type = <strong>Json</strong></li>
<li>Response Content Filter = <pre class="crayon-plain-tag">$.access_token</pre></li>
</ol>
</li>
<li>Click on OK button to save HTTP Connection configure settings.</li>
</ol>
<p>That’s it we have successfully configured Connection for Walmart API in SSIS. In the next section, we will see how to use this connection and read various data from Walmart API.</p>
<h3><span id="Read_YouTube_Playlists_in_SSIS">Read Walmart API Data in SSIS</span></h3>
<p>Once we have done creating HTTP Connection Manager we can move forward to read Walmart API data inside Data Flow. So lets Configure SSIS JSON / REST API Source.</p>
<ol>
<li>Now, Drag and drop Data Flow Task from SSIS Toolbox in the currently open project and double click it to edit.<br />
<img class="yoast-text-mark" /></p>
<div style="width: 470px" class="wp-caption aligncenter"><a href="https://i0.wp.com/zappysys.com/onlinehelp/ssis-powerpack/scr/images/drag-and-drop-data-flow-task.png?resize=460%2C155&amp;ssl=1" target="_blank" rel="noopener"><img loading="lazy" decoding="async" src="https://i0.wp.com/zappysys.com/onlinehelp/ssis-powerpack/scr/images/drag-and-drop-data-flow-task.png?resize=460%2C155&amp;ssl=1" alt="Drag and Drop Data Flow Task." width="460" height="155" /></a><p class="wp-caption-text">Drag and Drop Data Flow Task.</p></div></li>
<li>Double click on the Data Flow task to see the Data Flow designer surface.</li>
<li>From the SSIS toolbox drag and drop JSON Source on the dataflow designer surface.
<div style="width: 551px" class="wp-caption aligncenter"><a href="https://i1.wp.com/zappysys.com/onlinehelp/ssis-powerpack/scr/images/json-source/ssis-json-source-adapter-drag.png?w=720&amp;ssl=1" target="_blank" rel="noopener"><img loading="lazy" decoding="async" src="https://i1.wp.com/zappysys.com/onlinehelp/ssis-powerpack/scr/images/json-source/ssis-json-source-adapter-drag.png?w=720&amp;ssl=1" alt="Drag and Drop JSON Source(REST API or File)." width="541" height="144" /></a><p class="wp-caption-text">Drag and Drop JSON Source(REST API or File).</p></div></li>
<li>Double click JSON Source and enter the following URL as below.<br />
<pre class="crayon-plain-tag">https://marketplace.walmartapis.com/v3/items?nextCursor=*&amp;offset=2000&amp;limit=20</pre>
</li>
<li>Check Use Credentials and select existing HTTP connection we have created already it.</li>
<li>Enter Following HTTP Headers. If you prefer Raw edit .. Just click on Raw Edit (#6 in screenshot) and paste below headers. Make sure to replace <strong>YourClientIdGoesHere</strong> and <strong>YourSecretGoesHere</strong><br />
<pre class="crayon-plain-tag">Content-Type: application/xml
Accept: application/xml
Authorization: Basic &lt;&lt;YourClientIdGoesHere:YourSecretGoesHere,FUN_BASE64ENC&gt;&gt;
WM_SVC.NAME: Walmart Marketplace
WM_QOS.CORRELATION_ID: TokenId_&lt;&lt;yyyy-MM-ddTHH:mm:ss.fffZ,FUN_GETDATE_UTC&gt;&gt;</pre>
&nbsp;</li>
<li>Select Array Filter (ItemResponse node) or type $.ItemResponse[*]  as below.
<div id="attachment_7420" style="width: 730px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-json-source-configure.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7420" class="wp-image-7420 size-medium_large" src="https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-json-source-configure-768x765.png" alt="ZS JSON Source - Configure" width="720" height="717" srcset="https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-json-source-configure-768x765.png 768w, https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-json-source-configure-150x150.png 150w, https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-json-source-configure-300x300.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-json-source-configure.png 826w" sizes="(max-width: 720px) 100vw, 720px" /></a><p id="caption-attachment-7420" class="wp-caption-text">ZS JSON Source &#8211; Configure</p></div></li>
<li>That&#8217;s it, you are ready to load Wallmart API Data into SQL Server and you can use more <a href="https://zappysys.com//onlinehelp/ssis-powerpack/index.htm#page=ssis-format-specifiers.htm" target="_blank" rel="noopener">ZappySys Destination</a> components.</li>
<li>For pagination call please click <a href="https://zappysys.com/blog/ssis-rest-api-looping-until-no-more-pages-found/" target="_blank" rel="noopener">here</a> for reference to this link.</li>
</ol>
<h3>Load Walmart API data into SQL Server</h3>
<div class="content_block" id="custom_post_widget-5617"><p>ZappySys SSIS PowerPack makes it easy to load data from various sources such as REST, SOAP, JSON, XML, CSV or from other source into SQL Server, or PostgreSQL, or Amazon Redshift, or other  targets. The <strong>Upsert Destination</strong> component allows you to automatically insert new records and update existing ones based on key columns. Below are the detailed steps to configure it.</p>
<h3>Step 1: Add Upsert Destination to Data Flow</h3>
<ol>
<li>Drag and drop the <strong>Upsert Destination</strong> component from the SSIS Toolbox.</li>
<li>Connect your source component (e.g., JSON / REST / Other Source) to the Upsert Destination.</li>
</ol>
<div class="wp-caption aligncenter">
<a href="https://zappysys.com/blog/wp-content/uploads/2017/08/ssis-data-flow-drag-drop-upsert-destination.png">
<img loading="lazy" decoding="async" class="size-full" alt="" src="https://zappysys.com/blog/wp-content/uploads/2017/08/ssis-data-flow-drag-drop-upsert-destination.png" /></a>
<p class="wp-caption-text">SSIS - Data Flow - Drang and Drop Upsert Destination Component</p>
</div>
<h3>Step 2: Configure Target Connection</h3>
<ol>
<li>Double-click the <strong>Upsert Destination</strong> component to open the configuration window.</li>
<li>Under <strong>Connection</strong>, select an existing target connection or click <strong>NEW</strong> to create a new connection.
<ul>
<li>Example: SQL Server, or PostgreSQL, or Amazon Redshift.</li>
</ul>
</li>
</ol>
<h3>Step 3: Select or Create Target Table</h3>
<ol>
<li>In the <strong>Target Table</strong> dropdown, select the table where you want to load data.</li>
<li>Optionally, click <strong>NEW</strong> to create a new table based on the source columns.</li>
</ol>
<div class="wp-caption aligncenter">
<a href="https://zappysys.com/blog/wp-content/uploads/2020/09/upsert-destination-configuration.png">
<img loading="lazy" decoding="async" class="size-full" alt="" src="https://zappysys.com/blog/wp-content/uploads/2020/09/upsert-destination-configuration.png" /></a>
<p class="wp-caption-text">Configure SSIS Upsert Destination Connection - Loading data (REST / SOAP / JSON / XML /CSV) into SQL Server or other target using SSIS</p>
</div>
<h3>Step 4: Map Columns</h3>
<ol>
<li>Go to the <strong>Mappings</strong> tab.</li>
<li>Click <strong>Auto Map</strong> to map source columns to target columns by name.</li>
<li>Ensure you <strong>check the Primary key column(s)</strong> that will determine whether a record is inserted or updated.</li>
<li>You can manually adjust the mappings if necessary.</li>
</ol>
 <div class="wp-caption aligncenter">
<a href="https://zappysys.com/blog/wp-content/uploads/2020/09/upsert-destination-key.png">
<img loading="lazy" decoding="async" class="size-full" alt="" src="https://zappysys.com/blog/wp-content/uploads/2020/09/upsert-destination-key.png" /></a>
<p class="wp-caption-text">SSIS Upsert Destination - Columns Mappings</p>
</div>
<h3>Step 5: Save Settings</h3>
<ul>
<li>Click <strong>OK</strong> to save the Upsert Destination configuration.</li>
</ul>
<h3>Step 6: Optional: Add Logging or Analysis</h3>
<ul>
<li>You may add extra destination components to log the number of inserted vs. updated records for monitoring or auditing purposes.</li>
</ul>
<h3>Step 7: Execute the Package</h3>
<ul>
<li>Run your SSIS package and verify that the data is correctly inserted and updated in the target table.</li>
</ul>
<div class="wp-caption aligncenter">
<a href="https://zappysys.com/blog/wp-content/uploads/2018/12/ssis-upsert-destination-execute.png">
<img loading="lazy" decoding="async" class="size-full" alt="" src="https://zappysys.com/blog/wp-content/uploads/2018/12/ssis-upsert-destination-execute.png" /></a>
<p class="wp-caption-text">SSIS Upsert Destination Execution</p>
</div></div>
<h2>Walmart API integration using ODBC Driver (Power BI, Excel, MS Access)</h2>
<p>So far we have seen how to access Walmart API using SSIS. However there will be a time when you like to access API data inside other Apps using ODBC Driver. ZappySys Provides JSON/XML/CSV drivers for virtually any API including Walmart API. Here is how to access Walmart API using <a href="https://zappysys.com/products/odbc-powerpack/odbc-xml-soap-api-driver/" target="_blank" rel="noopener">XML ODBC Driver</a>.</p>
<ol>
<li>Type &#8220;ODBC&#8221; in Start menu. Open ODBC Data sources (64 bit)<br />
<a href="https://zappysys.com/blog/wp-content/uploads/2018/06/odbc-data-sources-start-up-screen.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3992" src="https://zappysys.com/blog/wp-content/uploads/2018/06/odbc-data-sources-start-up-screen.png" alt="Open ODBC Data Sources from Startup menu" width="986" height="622" srcset="https://zappysys.com/blog/wp-content/uploads/2018/06/odbc-data-sources-start-up-screen.png 986w, https://zappysys.com/blog/wp-content/uploads/2018/06/odbc-data-sources-start-up-screen-300x189.png 300w, https://zappysys.com/blog/wp-content/uploads/2018/06/odbc-data-sources-start-up-screen-768x484.png 768w" sizes="(max-width: 986px) 100vw, 986px" /></a></li>
<li>Click Add on User DSN tab (if you need to use DSN under different Account &#8230;i.e. Service Account then click on System DSN Tab)</li>
<li>Select <a href="https://zappysys.com/products/odbc-powerpack/odbc-xml-soap-api-driver/" target="_blank" rel="noopener"><strong>ZappySys XML Driver</strong></a></li>
<li>When New DSN UI shows up, Change DSN name to anything you like (e.g. WalmartAPI)</li>
<li>Click on <strong>Load ConnectionString</strong> button and enter below connection. Make sure to replace few things<br />
First <strong>######YourClientId#######</strong> with your own clientid<br />
Second <strong>######YourSecret#######</strong> with your own secret<br />
Third <strong>######Base64OfClientIdAndSecret#######</strong> with base64 encoded string of <pre class="crayon-plain-tag">clientId:Secret</pre>    (both separated with colon). You can use any site <a href="https://www.base64encode.org/" target="_blank" rel="noopener">like this one</a> to generate base64 string of your clientid and secret (seperated by &#8220;:&#8221;)<br />
<pre class="crayon-plain-tag">DRIVER={ZappySys XML Driver};
ElementsToTreatAsArray='ns2:ItemResponse';
DataPath='https://marketplace.walmartapis.com/v3/items?nextCursor=*&amp;offset=2000&amp;limit=20';
DataConnectionType=HTTP;
AuthScheme='{none}';
Url='https://marketplace.walmartapis.com/v3/items?nextCursor=*&amp;offset=2000&amp;limit=20';
TokenUrl='https://marketplace.walmartapis.com/v3/token';
TokenRequestData='grant_type=client_credentials';
TokenRequestMethod='POST';
TokenResponseContentFilter='$.access_token';
TokenRequestHeaders='Accept:application/json||Cache-Control:no-cache||WM_SVC.NAME:Walmart Marketplace||WM_QOS.CORRELATION_ID:TokenId_&lt;&lt;yyyy-MM-ddTHH:mm:ss.fffZ,FUN_GETDATE_UTC&gt;&gt;||Authorization:Basic &lt;&lt;[$userid$]:[$password$],FUN_BASE64ENC&gt;&gt;';
TokenAuthHeader='WM_SEC.ACCESS_TOKEN';
TokenResponseContentType=Json;
UserName='######YourClientId#######';
CredentialType=TokenDynamic;
Password='######YourSecret#######';
Filter='$.ns2:ItemResponses.ns2:ItemResponse[*]';
RequestMethod='GET';
RequestHeaders='Content-Type: application/xml || Accept: application/xml || Authorization: Basic ######Base64OfClientIdAndSecret####### || WM_SVC.NAME: Walmart Marketplace || WM_QOS.CORRELATION_ID: TokenId_&lt;&lt;yyyy-MM-ddTHH:mm:ss.fffZ,FUN_GETDATE_UTC&gt;&gt;'</pre>
<div id="attachment_7712" style="width: 533px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2019/07/zappysys-driver-load-connection-string.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7712" class="size-full wp-image-7712" src="https://zappysys.com/blog/wp-content/uploads/2019/07/zappysys-driver-load-connection-string.png" alt="ZappySys Driver - Load Connection String" width="523" height="499" srcset="https://zappysys.com/blog/wp-content/uploads/2019/07/zappysys-driver-load-connection-string.png 523w, https://zappysys.com/blog/wp-content/uploads/2019/07/zappysys-driver-load-connection-string-300x286.png 300w" sizes="(max-width: 523px) 100vw, 523px" /></a><p id="caption-attachment-7712" class="wp-caption-text">ZappySys Driver &#8211; Load Connection String</p></div>
<p>&nbsp;</li>
<li>Now go to preview tab and enter below query and click Run below SQL.</p><pre class="crayon-plain-tag">select * from $</pre><p>
<strong>&#8211;OR&#8211;<br />
</strong>NOTE: Change <strong>YourClientId</strong> and <strong>YourSecret</strong> in below sql before running</p><pre class="crayon-plain-tag">SELECT * FROM $
WITH(
Src='https://marketplace.walmartapis.com/v3/items?nextCursor=*&amp;offset=2000&amp;limit=20'
,Header='Content-Type: application/xml
Accept: application/xml
Authorization: Basic &lt;&lt;YourClientid:YourSecret,FUN_BASE64ENC&gt;&gt;
WM_SVC.NAME: Walmart Marketplace
WM_QOS.CORRELATION_ID: TokenId_&lt;&lt;yyyy-MM-ddTHH:mm:ss.fffZ,FUN_GETDATE_UTC&gt;&gt;'
)</pre><p>
&nbsp;</li>
</ol>
<h2>Walmart API Integration with Other BI Tools (Power BI, Excel, SSRS, MS Access&#8230;)</h2>
<div class="content_block" id="custom_post_widget-7051">ZappySys ODBC Drivers built using ODBC standard which is widely adopted by industry for a long time. Which mean the majority of BI Tools / Database Engines / ETL Tools already there will support native / 3rd party ODBC Drivers. Below is the small list of most popular tools / programming languages our Drivers support. If your tool / programming language doesn't appear in the below list, which means we have not documented use case but as long as your tool supports ODBC Standard, our drivers should work fine.

&nbsp;

<img loading="lazy" decoding="async" class="" src="//zappysys.com/images/odbc-powerpack/odbc-powerpack-integration.jpg" alt="ZappySys ODBC Drivers for REST API, JSON, XML - Integrate with Power BI, Tableau, QlikView, QlikSense, Informatica PowerCenter, Excel, SQL Server, SSIS, SSAS, SSRS, Visual Studio / WinForm / WCF, Python, C#, VB.net, PHP. PowerShell " width="750" height="372" />
<table style="valign: top;">
<tbody>
<tr>
<td>
<p style="text-align: center;"><strong>BI / Reporting Tools
Integration</strong></p>
</td>
<td style="text-align: center;"><strong>ETL Tools
Integration
</strong></td>
<td style="text-align: center;"><strong>Programming Languages</strong>
<strong>Integration</strong></td>
</tr>
<tr>
<td>
<ul>
 	<li><a href="https://zappysys.com/blog/howto-import-json-rest-api-power-bi/" target="_blank" rel="noopener">Microsoft Power BI</a></li>
 	<li><a href="https://zappysys.com/blog/import-rest-api-tableau-read-json-soap-xml-csv/">Tableau</a></li>
 	<li><a href="https://zappysys.com/blog/read-rest-api-using-ssrs-reports-call-json-xml-web-service/" target="_blank" rel="noopener">SSRS (SQL Reporting Services)</a></li>
 	<li><a href="https://zappysys.com/blog/qlik-rest-connector-examples-read-json-xml-api/" target="_blank" rel="noopener">QlikView /Qlik Sense</a></li>
 	<li><a href="https://zappysys.com/blog/call-rest-api-in-microstrategy-json-soap-xml/" target="_blank" rel="noopener">MicroStrategy</a></li>
 	<li><a href="https://zappysys.com/blog/import-rest-api-google-sheet-call-appscript-load-json-soap-xml-csv/" target="_blank" rel="noopener">Google Sheet</a></li>
 	<li><a href="https://zappysys.com/blog/import-json-excel-load-file-rest-api/" target="_blank" rel="noopener">Microsoft Excel</a></li>
 	<li><a href="https://zappysys.com/api/integration-hub/rest-api-connector/access?context=connector" target="_blank" rel="noopener">Microsoft Access</a></li>
 	<li>Oracle OBIEE</li>
 	<li>Many more (not in this list).....</li>
</ul>
</td>
<td>
<ul>
 	<li><a href="https://zappysys.com/blog/read-json-informatica-import-rest-api-json-file/" target="_blank" rel="noopener">Informatica PowerCenter</a> (Windows)</li>
 	<li>Informatica Cloud</li>
 	<li>SSIS (SQL Integration Services)</li>
 	<li><a href="https://zappysys.com/blog/import-rest-api-json-sql-server/" target="_blank" rel="noopener">SQL Server</a></li>
 	<li><a href="https://zappysys.com/blog/read-write-rest-api-data-in-talend-json-xml-soap/" target="_blank" rel="noopener">Talend Data Studio</a></li>
 	<li><a href="https://zappysys.com/blog/pentaho-read-rest-api-in-pentaho/" target="_blank" rel="noopener">Pentaho Kettle</a></li>
 	<li>Oracle OBIEE</li>
 	<li>Many more (not in this list).....</li>
</ul>
</td>
<td>
<ul>
 	<li>Visual Studio</li>
 	<li><a href="https://zappysys.com/blog/calling-rest-api-in-c/" target="_blank" rel="noopener">C#</a></li>
 	<li>C++</li>
 	<li><a href="https://zappysys.com/blog/connect-java-to-rest-api-json-soap-xml/" target="_blank" rel="noopener">JAVA</a></li>
 	<li><a href="https://zappysys.com/blog/set-rest-python-client/" target="_blank" rel="noopener">Python</a></li>
 	<li>PHP</li>
 	<li><a href="https://zappysys.com/blog/call-rest-api-powershell-script-export-json-csv/" target="_blank" rel="noopener">PowerShell</a></li>
 	<li><a href="https://zappysys.com/blog/import-rest-api-json-sql-server/" target="_blank" rel="noopener">T-SQL (Using Linked Server)</a></li>
</ul>
</td>
</tr>
</tbody>
</table>
&nbsp;</div>
<h2>How to encrypt Authorization Token as Base64Encode</h2>
<ol>
<li>If you want to directly pass Authorization header Token as Base64Encode(clientId:clientSecret) encrypted in the get token call, you can encrypted it using ZS Logging task and used it. Please refer to this <a href="https://zappysys.com//onlinehelp/ssis-powerpack/index.htm#page=ssis-format-specifiers.htm" target="_blank" rel="noopener">link</a> for the same.</li>
<li>In visual studio just Drag and Drop ZS Logging Task in the design panel.
<div style="width: 405px" class="wp-caption aligncenter"><a href="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/logging-task/ssis-logging-task-drag.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/logging-task/ssis-logging-task-drag.png" alt="Drag and Drop ZS Logging Task" width="395" height="80" /></a><p class="wp-caption-text">Drag and Drop ZS Logging Task</p></div></li>
<li>Double click on ZS Logging Task to configure it.</li>
<li>In the ZS Logging Task configure like the following image.
<div id="attachment_7453" style="width: 730px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-encrypted-authorization-token-using-zs-logging-task.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7453" class="wp-image-7453 size-medium_large" src="https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-encrypted-authorization-token-using-zs-logging-task-768x426.png" alt="Logging Task : Base64Enocde " width="720" height="399" srcset="https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-encrypted-authorization-token-using-zs-logging-task-768x426.png 768w, https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-encrypted-authorization-token-using-zs-logging-task-300x167.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-encrypted-authorization-token-using-zs-logging-task-1024x569.png 1024w, https://zappysys.com/blog/wp-content/uploads/2019/07/ssis-walmart-encrypted-authorization-token-using-zs-logging-task.png 1050w" sizes="(max-width: 720px) 100vw, 720px" /></a><p id="caption-attachment-7453" class="wp-caption-text">Logging Task : Base64Enocde</p></div></li>
<li>That&#8217;s all, Save Base64Encoded token for use in HTTP Connection.</li>
</ol>
<h2><span id="Conclusion">Conclusion</span></h2>
<p>After all, we saw you how to extract information from REST API such as Walmart REST API using HTTP Connection and load into SQL Server. We also learned techniques like How to get Dynamic Token using HTTP Connection. To explore many other scenarios not discussed in this article download <a href="https://zappysys.com/products/ssis-powerpack/">SSIS PowerPack from here (includes 70+ Components)</a>.</p>
<h2><span id="References">References</span></h2>
<p>Finally, you can use the following links for more information:</p>
<ul style="list-style-type: circle;">
<li>Help File: <a href="https://zappysys.com/onlinehelp/ssis-powerpack/scr/json-source.htm" target="_blank" rel="noopener">JSON Source(REST API or File)</a>, <a href="https://zappysys.com/onlinehelp/ssis-powerpack/scr/ssis-logging-task.htm" target="_blank" rel="noopener">ZS Logging Task</a></li>
<li>Walmart API: <a href="https://developer.walmart.com/#/apicenter/marketPlace/latest#getToken" target="_blank" rel="noopener">HTTP Connection</a></li>
</ul>
<p>The post <a href="https://zappysys.com/blog/read-walmart-api-data-ssis-odbc/">How to read Walmart API data in SSIS / ODBC</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Understand HTTP Status Code and Fix Common Errors in REST API</title>
		<link>https://zappysys.com/blog/understand-http-status-codes-fix-common-errors-rest-api/</link>
		
		<dc:creator><![CDATA[ZappySys]]></dc:creator>
		<pubDate>Tue, 19 Mar 2019 19:31:25 +0000</pubDate>
				<category><![CDATA[ODBC Drivers]]></category>
		<category><![CDATA[ODBC PowerPack]]></category>
		<category><![CDATA[REST API]]></category>
		<category><![CDATA[SSIS PowerPack]]></category>
		<category><![CDATA[SSIS REST API Task]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[rest api]]></category>
		<category><![CDATA[ssis]]></category>
		<guid isPermaLink="false">https://zappysys.com/blog/?p=6595</guid>

					<description><![CDATA[<p>Introduction Any time you send HTTP Request according to HTTP Standard using tools like ZappySys REST API Drivers or SSIS Connectors you may receive web response along with HTTP Status Codes. Dealing with REST / SOAP API calls you may face errors and you may find it challenging to understand generic error message from server along with [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/understand-http-status-codes-fix-common-errors-rest-api/">Understand HTTP Status Code and Fix Common Errors in REST API</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Introduction</h2>
<p><a href="https://zappysys.com/blog/wp-content/uploads/2018/06/REST-API-icon.jpg"><img loading="lazy" decoding="async" class=" wp-image-4254 alignleft" src="https://zappysys.com/blog/wp-content/uploads/2018/06/REST-API-icon.jpg" alt="Logo REST API" width="80" height="85" /></a>Any time you send HTTP Request according to <a href="https://tools.ietf.org/html/rfc2616" target="_blank" rel="noopener">HTTP Standard</a> using tools like ZappySys <a href="https://zappysys.com/products/odbc-powerpack/">REST API Drivers</a> or <a href="https://zappysys.com/products/ssis-powerpack/" target="_blank" rel="noopener">SSIS Connectors</a> you may receive web response along with HTTP Status Codes. Dealing with REST / SOAP API calls you may face errors and you may find it challenging to understand generic error message from server along with some Numeric value (Called HTTP Status Code).  In this article we will try to decode certain status codes and discuss various way to solve it.</p>
<h2>Example of HTTP Error and Status Code</h2>
<p>Before we dive deep on this topic of HTTP Errors Status Codes let&#8217;s check an example HTTP Error with Status Code 400 (BadRequest). As you notice we passed some bad data in Request Body to produce this error. As you may see in below screenshot there are few parts we need to configure to call REST API request.</p>
<ol>
<li><strong>URL </strong> (and optionally <strong>parameters</strong> in URL)</li>
<li><strong>Request Method</strong>  (i.e. GET / POST)</li>
<li><strong>Request Body</strong> (Optional &#8211; Not needed for GET request but for POST /PUT API requests you may need to pass)</li>
<li><strong>Request Content Type</strong> ( Optional &#8211; i.e. application/xml . This is not needed for GET Request)</li>
<li><strong>Request Headers</strong> (Optional &#8211; Many tools generate default headers behind the scene. In our example we passed only two headers but see how many more added automatically in below Raw View obtained by tools <a href="https://zappysys.com/blog/how-to-use-fiddler-to-analyze-http-web-requests/" target="_blank" rel="noopener">like Fiddler</a> )</li>
</ol>
<p>Sample Request:</p><pre class="crayon-plain-tag">POST
https://accounts.google.com/o/oauth2/token

&gt;&gt;&gt;&gt; HEADERS &lt;&lt;&lt;&lt;&lt;

User-Agent: ZappySysApp/1.0.2019.10310
Content-Type: application/xml
Accept: */*
Cache-Control: no-cache
Host: accounts.google.com
Content-Length: 13
Expect: 100-continue
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

&gt;&gt;&gt;&gt; BODY &lt;&lt;&lt;&lt;&lt;

some bad data</pre><p>
Sample Response:</p><pre class="crayon-plain-tag">HTTP/1.1 400 Bad Request

{
  "error": {
    "code": 400,
    "message": "Invalid JSON payload received. Unexpected token.\nsome bad data\n^",
    "status": "INVALID_ARGUMENT"
  }
}</pre><p>
Here is a screenshot of <a href="https://zappysys.com/products/ssis-powerpack/ssis-rest-api-web-service-task/" target="_blank" rel="noopener">SSIS REST API Task</a> which can be used for calling XML / JSON API to automate ETL workflows.</p>
<div id="attachment_6598" style="width: 1027px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2019/03/ssis-example-call-rest-api-http-error-status-code-400-bad-request.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6598" class="wp-image-6598 size-full" src="https://zappysys.com/blog/wp-content/uploads/2019/03/ssis-example-call-rest-api-http-error-status-code-400-bad-request.png" alt="Example of Calling REST API which returns HTTP Error Status Code 400 (Bad Request) - Invalid POST Body / Syntax Error" width="1017" height="706" srcset="https://zappysys.com/blog/wp-content/uploads/2019/03/ssis-example-call-rest-api-http-error-status-code-400-bad-request.png 1017w, https://zappysys.com/blog/wp-content/uploads/2019/03/ssis-example-call-rest-api-http-error-status-code-400-bad-request-300x208.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/03/ssis-example-call-rest-api-http-error-status-code-400-bad-request-768x533.png 768w" sizes="(max-width: 1017px) 100vw, 1017px" /></a><p id="caption-attachment-6598" class="wp-caption-text">Example of Calling REST API which returns HTTP Error Status Code 400 (Bad Request) &#8211; Invalid POST Body / Syntax Error</p></div>
<h2>Common HTTP Error Status Codes / Reasons / Possible Fix</h2>
<p>Status codes can be anywhere between 100 to 505. Most of them <a href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html" target="_blank" rel="noopener">documented here</a> also <a href="https://tools.ietf.org/html/rfc2616#page-57" target="_blank" rel="noopener">here (RFC2616 &#8211; HTTP / 1.1)</a>. Out of these status codes we will discuss few most common ones in this article and how to fix them.</p>
<p>Microsoft has also provided great explanation for most common HTTP Status Code <a href="https://docs.microsoft.com/en-us/dotnet/api/system.net.httpstatuscode?view=netframework-4.7.2" target="_blank" rel="noopener">here</a>.</p>
<h3>Status Code 400 &#8211; Bad Request</h3>
<p><strong>Possible Reason(s):</strong></p>
<ul>
<li>One or more URL Parameter is wrong</li>
<li>Request body may be wrong (For example: Either data is invalid in Body or Syntax is invalid &#8211; such as JSON Property name misspelled or missing closing brackets)</li>
</ul>
<p><strong>Possible Fix:</strong></p>
<ul>
<li>Make sure you passing URL Parameters correct way (Refer your API help file or some sample code)</li>
<li>For POST / PUT request check your Parameter names, Data format, JSON / XML syntax (Refer your API help file or some sample code)</li>
<li>If you want to validate JSON / XML Syntax use some FREE online validators for JSON  or XML</li>
</ul>
<h3>Status Code 401 &#8211; Unauthorized</h3>
<p><strong>Possible Reason(s):</strong></p>
<ul>
<li>You did not pass userid / password or session token</li>
<li>Your credentials are invalid or session token is expired</li>
<li>Some tool may not save Sensitive Information unless you set Save Sensitive Information option. For example in SSIS if you set PackageProtectionLevel= DoNotSaveSensitive then password will not be sent along with your API request.</li>
</ul>
<p><strong>Possible Fix:</strong></p>
<ul>
<li>Make sure you passing credentials either directly via HTTP Headers or URL Parameter</li>
<li>For ZappySys Products <a href="https://zappysys.com/blog/how-to-set-base64-encoded-authorization-header-for-http-web-request/" target="_blank" rel="noopener">use HTTP</a> or <a href="https://zappysys.com/blog/rest-api-authentication-with-oauth-2-0-using-ssis/" target="_blank" rel="noopener">OAuth connection</a> manager to pass credentials securely without worrying about manual HTTP Headers</li>
<li>If you configured PackageProtectionLevel= DoNotSaveSensitive in SSIS then <a href="https://zappysys.com/forums/topic/ssis-runtime-connection-error-packageprotectionlevel-set-donotsavesensitive/" target="_blank" rel="noopener">Check this</a> and <a href="https://zappysys.com/blog/how-to-run-an-ssis-package-with-sensitive-data-on-sql-server/" target="_blank" rel="noopener">this </a> article to learn how to pass sensitive information in SSIS at runtime / design time.</li>
</ul>
<h3>Status Code 404 &#8211; Page Not Found</h3>
<p><strong>Possible Reason(s):</strong></p>
<ul>
<li>You entered invalid URL</li>
<li>URL is intranet only and you trying to access from outside network</li>
</ul>
<p><strong>Possible Fix:</strong></p>
<ul>
<li>Check your URL and correct it so its not throwing 404 error when you test in Browser (It must return data or throw some other error &#8211; E.g. 400 &#8211; Bad request or 401-Unauthorized)</li>
</ul>
<h3>Status Code 405 &#8211; Method Is Not Allowed</h3>
<p><strong>Possible Reason(s):</strong></p>
<ul>
<li>You selected invalid Request Method (see #2 in above screenshot)</li>
</ul>
<p><strong>Possible Fix:</strong></p>
<ul>
<li>Select correct Request Method. Refer to your API see it supports the method you selected. For example You selected POSt method to update some data but your API is expecting PUT method rather than POST.</li>
</ul>
<h3>Status Code 411 &#8211; Length Required</h3>
<p><strong>Possible Reason(s):</strong></p>
<ul>
<li>You selected request method as POST or PUT but did not pass any body</li>
</ul>
<p><strong>Possible Fix:</strong></p>
<ul>
<li>Make sure you supply some value in the Request Body field as per API specification. See #4 in the screenshot above.</li>
</ul>
<h3>Status Code 415 &#8211; Media Type Is Not Supported</h3>
<p><strong>Possible Reason(s):</strong></p>
<ul>
<li>You did not pass correct Content-Type Header or your API was expecting different content-type setting than what you passed.</li>
</ul>
<p><strong>Possible Fix:</strong></p>
<ul>
<li>Pass HTTP Header Content-Type with correct value (Check API documentation). Typically for JSON API its <pre class="crayon-plain-tag">application/json</pre>  and for XML SOAP API its <pre class="crayon-plain-tag">text/xml</pre></li>
<li>If you are using Zappysys REST API Drivers or SSIS Connectors you will see Content Type Dropdown on UI see #4 in above screenshot. Change it to correct setting. If your content type not in the dropdown then you can set direct HTTP Header<br />
Example =&gt; <pre class="crayon-plain-tag">Content-Type: application/json</pre>  see #5 in screenshot.</li>
</ul>
<h2>Debugging HTTP Web Requests</h2>
<p>If you want to make sure what&#8217;s being passed to web server you can use <a href="https://zappysys.com/blog/how-to-use-fiddler-to-analyze-http-web-requests/" target="_blank" rel="noopener">this tool (Fiddler)</a> and debug your web requests. It will show you all parts of your HTTP Request / Response (i.e.  Headers, Body, URL Parameters)</p>
<p>The post <a href="https://zappysys.com/blog/understand-http-status-codes-fix-common-errors-rest-api/">Understand HTTP Status Code and Fix Common Errors in REST API</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tutorial &#8211; How to use Fiddler to analyze HTTP Web Requests (Tips)</title>
		<link>https://zappysys.com/blog/how-to-use-fiddler-to-analyze-http-web-requests/</link>
		
		<dc:creator><![CDATA[ZappySys]]></dc:creator>
		<pubDate>Tue, 26 Jul 2016 21:47:54 +0000</pubDate>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[fiddler]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[rest api]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[SSIS PowerPack]]></category>
		<category><![CDATA[web proxy]]></category>
		<guid isPermaLink="false">http://zappysys.com/blog/?p=700</guid>

					<description><![CDATA[<p>Introduction Fiddler is one the most popular tool to inspect your Http Traffic. This tool helps you to test REST API / SOAP Web requests very easily. If you are using SSIS PowerPack or REST API ODBC Drivers you will find this post really useful to debug various REST API integration issues. When you run Fiddler [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/how-to-use-fiddler-to-analyze-http-web-requests/">Tutorial &#8211; How to use Fiddler to analyze HTTP Web Requests (Tips)</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Introduction</h2>
<p><a href="http://www.telerik.com/fiddler" target="_blank" rel="noopener">Fiddler</a> is one the most popular tool to inspect your Http Traffic. This tool helps you to test REST API / SOAP Web requests very easily. If you are using <a href="https://zappysys.com/products/ssis-powerpack/">SSIS PowerPack</a> or <a href="https://zappysys.com/products/odbc-powerpack/" target="_blank" rel="noopener">REST API ODBC Drivers</a> you will find this post really useful to debug various REST API integration issues.</p>
<p>When you run Fiddler on your system, it acts as a tiny Web Proxy that sits between your client application and the webserver. Fiddler only starts capturing traffic when you running it. By default, it runs on the local machine (127.0.0.1) Port <strong>8888</strong>. You can change the default port from <strong>Tools</strong> &gt; <strong>Options</strong>.</p>
<h2>How to download Fiddler (it&#8217;s FREE)</h2>
<p>You can download <strong>Fiddler Classic</strong> <a href="https://www.telerik.com/download/fiddler/fiddler4" target="_blank" rel="noopener">using this link</a> for FREE (If that link doesn&#8217;t work then try <a href="https://www.telerik.com/download/fiddler" target="_blank" rel="noopener">this one</a>)</p>
<p><strong>Make sure that you have Downloaded the <a href="https://www.telerik.com/download/fiddler" target="_blank" rel="noopener">Fiddler Classic</a> and not a Fiddler Everywhere. </strong>Both products might have same features listed in this article but screenshots and steps listed in this article is about Fiddler Classic.</p>
<div class="su-note"  style="border-color:#e5de9d;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;"><div class="su-note-inner su-u-clearfix su-u-trim" style="background-color:#fff8b7;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;"><strong>Fiddler is a third party</strong> <strong><a href="https://www.telerik.com/fiddler" target="_blank" rel="noopener">Telerik&#8217;s</a> tool</strong> used to log, inspect, and alter HTTP and HTTPS traffic between a computer and a web server or servers.<br />
<strong>It is not our product,</strong> this article is just to show you how you can analyze the API Request and Response call made from our Tasks/Components/Drivers.</div></div>
<h2>How to start/stop Fiddler two ways &#8211; Capture HTTP(s) Traffic</h2>
<p>After you install Fiddler, Go to <strong>Start Menu </strong> &gt;<strong>Search for Fiddler</strong></p>
<p>Launch Fiddler exe and it will start capturing HTTP traffic (For HTTPS URL see next section).</p>
<p>Run fiddler to start capturing web requests/responses made by various client applications on your system (e.g. Curl, Chrome, Internet Explorer). To start/stop capture go to File &gt; Check/Uncheck <strong>[Capture Traffic]</strong> option.</p>
<p>By default when you run Fiddler it behaves like the default proxy server on your system. However, not all web requests appear in fiddler unless the client application using a system Default Proxy.</p>
<div id="attachment_3555" style="width: 317px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-start-stop-web-traffic-capture.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3555" class="size-full wp-image-3555" src="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-start-stop-web-traffic-capture.png" alt="Start / Stop Fiddler Capture" width="307" height="329" srcset="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-start-stop-web-traffic-capture.png 307w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-start-stop-web-traffic-capture-280x300.png 280w" sizes="(max-width: 307px) 100vw, 307px" /></a><p id="caption-attachment-3555" class="wp-caption-text">Start / Stop Fiddler Capture</p></div>
<h2>How to capture HTTPS traffic in Fiddler</h2>
<p>By default <strong>Fiddler</strong> doesn&#8217;t show the content of Web requests made to <strong>HTTPS</strong> Url (Secure site) because it&#8217;s encrypted. Perform the following steps if you want to see HTTPS Traffic.</p>
<ol>
<li>Launch Fiddler</li>
<li>Go to <strong>Tools</strong> &gt; Telerik Fiddler <strong>Options</strong> &gt; <strong>HTTPS</strong> &gt; Check [<strong>Decrypt Https Traffic</strong> Option]
<div id="attachment_3554" style="width: 348px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-capture-https-traffic-decrypt-option.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3554" class="size-full wp-image-3554" src="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-capture-https-traffic-decrypt-option.png" alt="Fiddler Option - Decrypt HTTPS Traffic" width="338" height="229" srcset="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-capture-https-traffic-decrypt-option.png 338w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-capture-https-traffic-decrypt-option-300x203.png 300w" sizes="(max-width: 338px) 100vw, 338px" /></a><p id="caption-attachment-3554" class="wp-caption-text">Fiddler Option &#8211; Decrypt HTTPS Traffic</p></div></li>
<li>Once prompted <strong>Accept</strong> certificate generated by Fiddler</li>
</ol>
<p>&nbsp;</p>
<h2 class="mceTemp">How to filter traffic for specific Domain or URL (contains)</h2>
<p>If you see lots of unwanted log entries after you enable Capturing then try following setting to Include / Clude certain log entries from the Capture making it easier to analyze.</p>
<ol>
<li>Go to Filters Tab</li>
<li>Check Show only if URL contains. Type any words you like to check in URL. e.g. zappysys.com will include only those URL which has &#8220;zappysys.com&#8221; anywhere in the Full URL. You can add multiple included by adding space after words</li>
<li> If you like to exclude some URLs then check Hide if URL contains option and enter string like previous step<br />
<a href="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-include-exclude-filter-by-domain-url-string.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-11182" src="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-include-exclude-filter-by-domain-url-string.png" alt="" width="576" height="488" srcset="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-include-exclude-filter-by-domain-url-string.png 576w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-include-exclude-filter-by-domain-url-string-300x254.png 300w" sizes="(max-width: 576px) 100vw, 576px" /></a></li>
</ol>
<h2>How to view Web Request and Response in Fiddler</h2>
<p>Once your web requests appear on the left side panel. Simply double click on the request entry to view. On your right side, you will see two panels.</p>
<ol>
<li>Top  Panel &#8211; Request View</li>
<li>Bottom Panel &#8211; Response View</li>
</ol>
<p>Here is an example of seeing API calls generated by <a href="https://zappysys.com/blog/how-to-call-amazon-aws-api-using-ssis-ec2-lambda-api-gateway-sqs/" target="_blank" rel="noopener">aws command line</a> requests/response in Fiddler.</p>
<div id="attachment_2314" style="width: 1175px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2017/11/ssis-get-raw-rest-request-aws-commandline-cli-capture-fiddler.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2314" class="size-full wp-image-2314" src="https://zappysys.com/blog/wp-content/uploads/2017/11/ssis-get-raw-rest-request-aws-commandline-cli-capture-fiddler.png" alt="Capture AWS Commandline (CLI) request using Fiddler" width="1165" height="640" srcset="https://zappysys.com/blog/wp-content/uploads/2017/11/ssis-get-raw-rest-request-aws-commandline-cli-capture-fiddler.png 1165w, https://zappysys.com/blog/wp-content/uploads/2017/11/ssis-get-raw-rest-request-aws-commandline-cli-capture-fiddler-300x165.png 300w, https://zappysys.com/blog/wp-content/uploads/2017/11/ssis-get-raw-rest-request-aws-commandline-cli-capture-fiddler-768x422.png 768w, https://zappysys.com/blog/wp-content/uploads/2017/11/ssis-get-raw-rest-request-aws-commandline-cli-capture-fiddler-1024x563.png 1024w" sizes="(max-width: 1165px) 100vw, 1165px" /></a><p id="caption-attachment-2314" class="wp-caption-text">Capture AWS Command line (CLI) request using Fiddler</p></div>
<h2>How to Test API using Fiddler (Call REST API for without Postman)</h2>
<p>Fiddler comes with another cool feature just like <a href="https://zappysys.com/blog/postman-to-ssis-odbc-powerpack/" target="_blank" rel="noopener">Postman</a> so you can test your API call. Basically, there will be a time when you like to edit your request and test with different data (e.g. URL / Body or Headers). If that&#8217;s the case you can directly go to Composer Tab or Replay existing request right Right Click.</p>
<p><strong>How to replay existing request / edit / send new request</strong></p>
<p>To reply to the existing request</p>
<div id="attachment_6429" style="width: 1108px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-debug-web-request-replay-composer-test-rest-api-call-like-postman.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6429" class="size-full wp-image-6429" src="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-debug-web-request-replay-composer-test-rest-api-call-like-postman.png" alt="Test Web Requests in Fiddler Composer - Replay existing REST API requests or send new one (Edit Header, Body, URL)" width="1098" height="470" srcset="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-debug-web-request-replay-composer-test-rest-api-call-like-postman.png 1098w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-debug-web-request-replay-composer-test-rest-api-call-like-postman-300x128.png 300w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-debug-web-request-replay-composer-test-rest-api-call-like-postman-768x329.png 768w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-debug-web-request-replay-composer-test-rest-api-call-like-postman-1024x438.png 1024w" sizes="(max-width: 1098px) 100vw, 1098px" /></a><p id="caption-attachment-6429" class="wp-caption-text">Test Web Requests in Fiddler Composer &#8211; Replay existing REST API requests or send new one (Edit Header, Body, URL)</p></div>
<p>&nbsp;</p>
<h2>How to view and format JSON / XML data in Fiddler</h2>
<p>By default Fiddler will show you JSON  / XML Tab if request body or response data in that format (see JSON / XML tabs on top and bottom panels). But what if you like to see in Raw Text but in Syntax Highlighted  / formatted way?</p>
<p>&nbsp;</p>
<div id="attachment_6430" style="width: 575px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-view-formatted-json-xml-syntax-request-response-highlighting.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6430" class="size-full wp-image-6430" src="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-view-formatted-json-xml-syntax-request-response-highlighting.png" alt="Format Fiddler Request / Response (XML or JSON). View text with Syntax Highlighting" width="565" height="456" srcset="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-view-formatted-json-xml-syntax-request-response-highlighting.png 565w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-view-formatted-json-xml-syntax-request-response-highlighting-300x242.png 300w" sizes="(max-width: 565px) 100vw, 565px" /></a><p id="caption-attachment-6430" class="wp-caption-text">Format Fiddler Request / Response (XML or JSON). View text with Syntax Highlighting</p></div>
<h2>How to use fiddler Converters (e.g. Base64 / URL encode &#8211; decode)</h2>
<p>There will be a time when you like to encode / decode strings appearing in web requests. Fiddler has another very handy feature call Send to Text Wizard. This option appears in most right click Menu in Raw / Syntax View / Headers view and other places.</p>
<div id="attachment_6433" style="width: 661px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-sendto-convert-base64-encode-decode.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6433" class="size-full wp-image-6433" src="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-sendto-convert-base64-encode-decode.png" alt="Encode / Decode / Convert Text in Fiddler (e.g. Base64, URL Encode)" width="651" height="465" srcset="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-sendto-convert-base64-encode-decode.png 651w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-sendto-convert-base64-encode-decode-300x214.png 300w" sizes="(max-width: 651px) 100vw, 651px" /></a><p id="caption-attachment-6433" class="wp-caption-text">Encode / Decode / Convert Text in Fiddler (e.g. Base64, URL Encode)</p></div>
<h2>How to add Request Start Time, Overall Elapsed Time Columns in Fiddler</h2>
<p>It&#8217;s really useful to see how much time each request is taking. For that, you can try the below steps in Fiddler Classic</p>
<ol>
<li>Right-click on any Header Column</li>
<li>Select &#8220;Customize Columns&#8221;</li>
<li>Choose &#8220;<strong>Session Timers</strong>&#8220;</li>
<li> Choose <strong>Overall_Elaspsed</strong> and  <strong>ClientConnectedTime</strong> from the dropdown</li>
</ol>
<div id="attachment_9523" style="width: 641px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-overall-elapsed-time.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-9523" class="wp-image-9523 size-full" src="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-overall-elapsed-time.png" alt="How to see request start time, overall elapsed time in Fiddler" width="631" height="526" srcset="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-overall-elapsed-time.png 631w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-overall-elapsed-time-300x250.png 300w" sizes="(max-width: 631px) 100vw, 631px" /></a><p id="caption-attachment-9523" class="wp-caption-text">How to see request start time, overall elapsed time in Fiddler</p></div>
<h2>How to edit and execute the processed requests in Fiddler</h2>
<p>If you want to re-execute existing requests in Fiddler with different parameters then try the below steps</p>
<ol>
<li>Select request from the left-hand side panel (or may be bottom side)</li>
<li>Press &#8220;<strong>E</strong>&#8221; and you will see a panel like below</li>
<li>Edit your request (i.e. URL, Header or Body)</li>
<li>Click on <strong>Run to Complete</strong></li>
</ol>
<div id="attachment_9522" style="width: 1013px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-edit-execute-request.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-9522" class="wp-image-9522 size-full" src="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-edit-execute-request.png" alt="" width="1003" height="476" srcset="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-edit-execute-request.png 1003w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-edit-execute-request-300x142.png 300w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-edit-execute-request-768x364.png 768w" sizes="(max-width: 1003px) 100vw, 1003px" /></a><p id="caption-attachment-9522" class="wp-caption-text">Edit, Execute Processed Requests in Fiddler</p></div>
<h2>How to enable AutoResponder &#8211; Fake Response (Rule based)</h2>
<p>If you want to test some API calls for testing purposes, then you can use the AutoResponder feature of Fiddler. It allows you to match URL pattern and send response text from a local file. Here is how to enable Fake Response (Rule-based Auto Response)</p>
<ol>
<li>Select URL from the log (Optional) &#8211; If you skip this step then in step#3 you will have to enter URL manually.</li>
<li> Go to AutoResponder Tab</li>
<li>Click Add Rule (if you didn&#8217;t select Log entry then Rule editor will have blank URL)</li>
<li>Enter / Change URL Rule in the Rule editor if needed. By default it uses EXACT match rule. <a href="https://docs.telerik.com/fiddler/knowledge-base/autoresponder" target="_blank" rel="noopener">Click here to learn</a> more about more rules</li>
<li>Enter a file path where you have saved Fake Response you like to serve if URL rule.</li>
</ol>
<p><strong>Examples:</strong></p>
<p>Exact URL match:   <pre class="crayon-plain-tag">EXACT:HTTP://abc.com/api/v3/projects/123/milestones</pre>
<p>Pattern URL match: <pre class="crayon-plain-tag">method:GET regex:(.*)/api/v3/projects/([\w\d-])+/milestones(.*)</pre>
<div id="attachment_11184" style="width: 1292px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-auto-responder-rule-match-response-from-local-file.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11184" class="size-full wp-image-11184" src="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-auto-responder-rule-match-response-from-local-file.png" alt="Fiddler AutoResponder (Test Fake Response from local file - Rule match based on URL Pattern)" width="1282" height="810" srcset="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-auto-responder-rule-match-response-from-local-file.png 1282w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-auto-responder-rule-match-response-from-local-file-300x190.png 300w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-auto-responder-rule-match-response-from-local-file-1024x647.png 1024w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-auto-responder-rule-match-response-from-local-file-768x485.png 768w" sizes="(max-width: 1282px) 100vw, 1282px" /></a><p id="caption-attachment-11184" class="wp-caption-text">Fiddler AutoResponder (Test Fake Response from local file &#8211; Rule match based on URL Pattern)</p></div>
<h2>How to diff Fiddler requests</h2>
<p>Sometimes you like to see difference between two requests. Fiddler comes with very handy feature. Just select two requests and click Diff Option in Right click menu. For diff to work make sure you install some diff utilities like <strong>KDiff3</strong> or <a href="http://winmerge.org/downloads/?lang=en" target="_blank" rel="noopener">WinMerge</a>.</p>
<div id="attachment_5765" style="width: 1417px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-compare-requests-find-diff.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5765" class="size-full wp-image-5765" src="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-compare-requests-find-diff.png" alt="Compare requests in Fiddler / Reissue same request with changes (Composer Tab)" width="1407" height="560" srcset="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-compare-requests-find-diff.png 1407w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-compare-requests-find-diff-300x119.png 300w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-compare-requests-find-diff-768x306.png 768w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-compare-requests-find-diff-1024x408.png 1024w" sizes="(max-width: 1407px) 100vw, 1407px" /></a><p id="caption-attachment-5765" class="wp-caption-text">Compare requests in Fiddler / Reissue same request with changes (Composer Tab)</p></div>
<h2>How to show SSIS PowerPack requests in Fiddler</h2>
<p>In most cases SSIS PowerPack requests will apperar in Fiddler without any extra configurations. However in some cases applications like SSIS PowerPack cannot detect it as System Default Proxy automatically. In that case try to enable Proxy settings in <a href="https://zappysys.com/onlinehelp/ssis-powerpack/scr/ssis-http-connection-manager.htm" target="_blank" rel="noopener">HTTP Connection</a> or <a href="https://zappysys.com/onlinehelp/ssis-powerpack/scr/ssis-oauth-connection-manager.htm" target="_blank" rel="noopener">OAuth Connection</a>.  If you are not using connection manager then some Components like JSON Source offers its own Proxy tab so just check Enable Proxy.</p>
<p>By default Fiddler register itself as Default Web Proxy on port 8888  (i.e.  <pre class="crayon-plain-tag">http://127.0.0.1:8888</pre>  )</p>
<div id="attachment_3556" style="width: 606px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2016/07/ssis-powerpack-http-proxy-options.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3556" class="size-full wp-image-3556" src="https://zappysys.com/blog/wp-content/uploads/2016/07/ssis-powerpack-http-proxy-options.png" alt="Using Proxy Settings in SSIS PowerPack" width="596" height="458" srcset="https://zappysys.com/blog/wp-content/uploads/2016/07/ssis-powerpack-http-proxy-options.png 596w, https://zappysys.com/blog/wp-content/uploads/2016/07/ssis-powerpack-http-proxy-options-300x231.png 300w" sizes="(max-width: 596px) 100vw, 596px" /></a><p id="caption-attachment-3556" class="wp-caption-text">Using Proxy Settings in SSIS PowerPack</p></div>
<h2>View HTTP Request in Fiddler</h2>
<p>To inspect HTTP <strong>Web Request</strong> using Fiddler perform following steps.</p>
<ol>
<li>Click on the web request entry on left pane</li>
<li>Click on the <strong>Inspector Tab</strong> &gt; Click Raw from top panel</li>
</ol>
<h2>View HTTP Response in Fiddler</h2>
<p>To inspect HTTP <strong>Web Response</strong> using Fiddler perform following steps.</p>
<ol>
<li>Click on the web request entry on left pane</li>
<li>Click on the Inspector Tab &gt; Click Raw from bottom panel</li>
<li>You can also click on JSON or XML Tab if your want to see response coming in specific format</li>
</ol>
<p>&nbsp;</p>
<div id="attachment_546" style="width: 710px" class="wp-caption alignnone"><a href="//zappysys.com/blog/wp-content/uploads/2016/06/fiddler-http-multipart-form-data-example-rest-api-file-upload-post.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-546" class="wp-image-546" src="//zappysys.com/blog/wp-content/uploads/2016/06/fiddler-http-multipart-form-data-example-rest-api-file-upload-post.png" alt="How to use Fiddler - Analyze Web Requests- File Upload Example - Check Fiddler Request" width="700" height="444" srcset="https://zappysys.com/blog/wp-content/uploads/2016/06/fiddler-http-multipart-form-data-example-rest-api-file-upload-post.png 989w, https://zappysys.com/blog/wp-content/uploads/2016/06/fiddler-http-multipart-form-data-example-rest-api-file-upload-post-300x190.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></a><p id="caption-attachment-546" class="wp-caption-text">HTTTP Multipart POST &#8211; File Upload Example &#8211; Check Fiddler Request</p></div>
<h2>View compressed (i.e. gzip, deflate) Response in Fiddler raw view</h2>
<p>When response is compressed then by default you wont be able to see it in Raw tab. When response is compressed you may see header like below in response headers. You can also click on</p><pre class="crayon-plain-tag">Content-Encoding: gzip</pre><p>
To view compressed response in fiddler perform following steps.</p>
<ol>
<li>Click on the web request entry on left pane</li>
<li>Click on the Inspector Tab &gt; Click Transformer tab from bottom panel</li>
<li>Click on transformer tab and select No compression option and then click Raw tab</li>
</ol>
<div id="attachment_871" style="width: 649px" class="wp-caption alignnone"><a href="//zappysys.com/blog/wp-content/uploads/2016/07/fiddler-view-uncompressed-data-gzip-deflate-encoding.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-871" class="size-full wp-image-871" src="//zappysys.com/blog/wp-content/uploads/2016/07/fiddler-view-uncompressed-data-gzip-deflate-encoding.png" alt="View uncompressed data in Fiddler (GZip, Deflate Encoding)" width="639" height="486" srcset="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-view-uncompressed-data-gzip-deflate-encoding.png 639w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-view-uncompressed-data-gzip-deflate-encoding-300x228.png 300w" sizes="(max-width: 639px) 100vw, 639px" /></a><p id="caption-attachment-871" class="wp-caption-text">View uncompressed data in Fiddler (GZip, Deflate Encoding)</p></div>
<h2>How to view Formatted JSON / XML</h2>
<p>If you have JSON or XML response and you like to view formatted documents then you can go to Syntax View in the Response Panel and right-click and format</p>
<div id="attachment_11079" style="width: 1009px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-format-json-xml-request-response.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11079" class="size-full wp-image-11079" src="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-format-json-xml-request-response.png" alt="How to format Fiddler Request / Response (JSON/XML document)" width="999" height="484" srcset="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-format-json-xml-request-response.png 999w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-format-json-xml-request-response-300x145.png 300w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-format-json-xml-request-response-768x372.png 768w" sizes="(max-width: 999px) 100vw, 999px" /></a><p id="caption-attachment-11079" class="wp-caption-text">How to format Fiddler Request / Response (JSON/XML document)</p></div>
<p>&nbsp;</p>
<h2>Using Fiddler Text Wizard Tools (Encode / Decode &#8211; Hex, HTML, URL, Base64)</h2>
<p>If you would like to perform some conversions like the one below, then you can use the TextWizard tool found in Fiddler. It&#8217;s very handy. Simply right click and click on <strong>Send to TextWizard option</strong> (found in most tabs / screens)</p>
<ul>
<li>Base64 Encode / Decode</li>
<li>HTML Encode / Decode</li>
<li>URL Encode / Decode</li>
<li>Hex Encode / Decode</li>
<li>and more&#8230;</li>
</ul>
<p><strong>Launching Fiddler TextWizard from Right click menu</strong></p>
<div id="attachment_11081" style="width: 498px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-sendto-textwizard-menu.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11081" class="size-full wp-image-11081" src="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-sendto-textwizard-menu.png" alt="Fiddler Send To TextWizard Menu" width="488" height="289" srcset="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-sendto-textwizard-menu.png 488w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-sendto-textwizard-menu-300x178.png 300w" sizes="(max-width: 488px) 100vw, 488px" /></a><p id="caption-attachment-11081" class="wp-caption-text">Fiddler Send To TextWizard Menu</p></div>
<p><strong>Launching Fiddler TextWizard from Toolbar</strong></p>
<div id="attachment_11080" style="width: 495px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-textwizard-option-base64-url-encode-decode.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11080" class="size-full wp-image-11080" src="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-textwizard-option-base64-url-encode-decode.png" alt="Fiddler TextWizard UI" width="485" height="568" srcset="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-textwizard-option-base64-url-encode-decode.png 485w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-textwizard-option-base64-url-encode-decode-256x300.png 256w" sizes="(max-width: 485px) 100vw, 485px" /></a><p id="caption-attachment-11080" class="wp-caption-text">Fiddler TextWizard UI</p></div>
<h2>How to compare requests / re-execute</h2>
<p>Sometimes you want to compare two requests and find the difference. Here is how you can compare requests and re-execute same request or edit it.</p>
<div id="attachment_5765" style="width: 1417px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-compare-requests-find-diff.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5765" class="size-full wp-image-5765" src="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-compare-requests-find-diff.png" alt="Compare requests in Fiddler / Reissue same request with changes (Composer Tab)" width="1407" height="560" srcset="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-compare-requests-find-diff.png 1407w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-compare-requests-find-diff-300x119.png 300w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-compare-requests-find-diff-768x306.png 768w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-compare-requests-find-diff-1024x408.png 1024w" sizes="(max-width: 1407px) 100vw, 1407px" /></a><p id="caption-attachment-5765" class="wp-caption-text">Compare requests in Fiddler / Reissue same request with changes (Composer Tab)</p></div>
<h2>How to show web request of Curl in Fiddler</h2>
<p>By default some application such as <a href="https://curl.haxx.se/docs/manpage.html" target="_blank" rel="noopener">Curl </a>doesn&#8217;t use system default Proxy. That means if you running <strong>Fiddler</strong> and trying to analyze requests made from <strong>Curl command line</strong> then it wont show up. Its easy to tell curl that which proxy server to use. Just use <strong>-x</strong> command line option with proxy server IP and Port (e.g. Default Fiddler IP and port &#8230; 127.0.0.1:8888 )</p><pre class="crayon-plain-tag">curl.exe -v -x 127.0.0.1:8888 https://google.com</pre><p>
<h2></h2>
<h2>How to show SoapUI requests in Fiddler</h2>
<p>If you are using an application like <strong>SoapUI</strong> then also it may not use Fiddler as default web proxy. to show your SoapUI web requests in Fiddler try following options</p>
<div id="attachment_3557" style="width: 575px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2016/07/soapui-enable-proxy-settings.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3557" class="size-full wp-image-3557" src="https://zappysys.com/blog/wp-content/uploads/2016/07/soapui-enable-proxy-settings.png" alt="Configure Proxy Settings in SoapUI" width="565" height="396" srcset="https://zappysys.com/blog/wp-content/uploads/2016/07/soapui-enable-proxy-settings.png 565w, https://zappysys.com/blog/wp-content/uploads/2016/07/soapui-enable-proxy-settings-300x210.png 300w" sizes="(max-width: 565px) 100vw, 565px" /></a><p id="caption-attachment-3557" class="wp-caption-text">Configure Proxy Settings in SoapUI</p></div>
<p>&nbsp;</p>
<h2>How to show aws command line requests in Fiddler</h2>
<p>If you are using aws<a href="https://aws.amazon.com/cli/" target="_blank" rel="noopener"> command line</a> application and want to show requests in Fiddler then add <strong>&#8211;no-verify-ssl</strong> like below. This way you can capture RAW API requests and <a href="https://zappysys.com/blog/how-to-call-amazon-aws-api-using-ssis-ec2-lambda-api-gateway-sqs/" target="_blank" rel="noopener">use it like this in SSIS</a>.</p><pre class="crayon-plain-tag">aws lambda invoke --function-name HelloWorld c:\temp\outputfile.txt --no-verify-ssl --payload file://c://test/customer.json</pre><p>
<h2>How to show Windows Service requests in Fiddler (Local System Account)</h2>
<p>By default if Fiddler launched as Admin it will capture most of requests by various apps. But if your like to capture Web requests which are issued by windows service such as <a href="https://zappysys.com/products/odbc-powerpack/data-gateway/" target="_blank" rel="noopener">ZappySys Data Gateway</a> then you might have to do little extra work (Assuming Service is not setup Run As Your account). By default many service Run under &#8220;<strong>Local System</strong>&#8221; account</p>
<p>Here is how to capture those requests which are issued by service account.</p>
<ol>
<li>Go to Folder where Service Exe is located (If you are unsure simply right click on Service &gt; Properties and check path)</li>
<li>Create new file in the same folder where Service Exe is located. File name must be <strong><em>&lt;yourexename&gt;</em>.exe.config</strong></li>
<li>Enter following XML text in your config file and save<br />
<pre class="crayon-plain-tag">&lt;configuration&gt;
  &lt;system.net&gt;
    &lt;defaultProxy enabled="true"&gt;
      &lt;proxy proxyaddress="http://127.0.0.1:8888" bypassonlocal="False"/&gt;
    &lt;/defaultProxy&gt;
  &lt;/system.net&gt;
&lt;/configuration&gt;</pre>
</li>
<li>Restart Service and check Fiddler now see requests are captured</li>
</ol>
<div id="attachment_9266" style="width: 808px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-capture-windows-service-traffic-localsystem-via-app-config.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-9266" class="size-full wp-image-9266" src="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-capture-windows-service-traffic-localsystem-via-app-config.png" alt="Capture Windows Service Web Requests in Fiddler (App Config method)" width="798" height="552" srcset="https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-capture-windows-service-traffic-localsystem-via-app-config.png 798w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-capture-windows-service-traffic-localsystem-via-app-config-300x208.png 300w, https://zappysys.com/blog/wp-content/uploads/2016/07/fiddler-capture-windows-service-traffic-localsystem-via-app-config-768x531.png 768w" sizes="(max-width: 798px) 100vw, 798px" /></a><p id="caption-attachment-9266" class="wp-caption-text">Capture Windows Service Web Requests in Fiddler (App Config method)</p></div>
<h2>REST API integration using ODBC in BI Apps (e.g. Power BI, Excel, Informatica, Access, C#&#8230;)</h2>
<p>If you want to consume API data in SQL Server (without ETL) or Live API consumption in Tools like Power BI, Excel, Tableau, SSRS, Talend, Informatica then use <a href="https://zappysys.com/products/odbc-powerpack/" target="_blank" rel="noopener">ODBC PowerPack</a> from here. See below table for each use case.</p>
<div class="content_block" id="custom_post_widget-7051">ZappySys ODBC Drivers built using ODBC standard which is widely adopted by industry for a long time. Which mean the majority of BI Tools / Database Engines / ETL Tools already there will support native / 3rd party ODBC Drivers. Below is the small list of most popular tools / programming languages our Drivers support. If your tool / programming language doesn't appear in the below list, which means we have not documented use case but as long as your tool supports ODBC Standard, our drivers should work fine.

&nbsp;

<img loading="lazy" decoding="async" class="" src="//zappysys.com/images/odbc-powerpack/odbc-powerpack-integration.jpg" alt="ZappySys ODBC Drivers for REST API, JSON, XML - Integrate with Power BI, Tableau, QlikView, QlikSense, Informatica PowerCenter, Excel, SQL Server, SSIS, SSAS, SSRS, Visual Studio / WinForm / WCF, Python, C#, VB.net, PHP. PowerShell " width="750" height="372" />
<table style="valign: top;">
<tbody>
<tr>
<td>
<p style="text-align: center;"><strong>BI / Reporting Tools
Integration</strong></p>
</td>
<td style="text-align: center;"><strong>ETL Tools
Integration
</strong></td>
<td style="text-align: center;"><strong>Programming Languages</strong>
<strong>Integration</strong></td>
</tr>
<tr>
<td>
<ul>
 	<li><a href="https://zappysys.com/blog/howto-import-json-rest-api-power-bi/" target="_blank" rel="noopener">Microsoft Power BI</a></li>
 	<li><a href="https://zappysys.com/blog/import-rest-api-tableau-read-json-soap-xml-csv/">Tableau</a></li>
 	<li><a href="https://zappysys.com/blog/read-rest-api-using-ssrs-reports-call-json-xml-web-service/" target="_blank" rel="noopener">SSRS (SQL Reporting Services)</a></li>
 	<li><a href="https://zappysys.com/blog/qlik-rest-connector-examples-read-json-xml-api/" target="_blank" rel="noopener">QlikView /Qlik Sense</a></li>
 	<li><a href="https://zappysys.com/blog/call-rest-api-in-microstrategy-json-soap-xml/" target="_blank" rel="noopener">MicroStrategy</a></li>
 	<li><a href="https://zappysys.com/blog/import-rest-api-google-sheet-call-appscript-load-json-soap-xml-csv/" target="_blank" rel="noopener">Google Sheet</a></li>
 	<li><a href="https://zappysys.com/blog/import-json-excel-load-file-rest-api/" target="_blank" rel="noopener">Microsoft Excel</a></li>
 	<li><a href="https://zappysys.com/api/integration-hub/rest-api-connector/access?context=connector" target="_blank" rel="noopener">Microsoft Access</a></li>
 	<li>Oracle OBIEE</li>
 	<li>Many more (not in this list).....</li>
</ul>
</td>
<td>
<ul>
 	<li><a href="https://zappysys.com/blog/read-json-informatica-import-rest-api-json-file/" target="_blank" rel="noopener">Informatica PowerCenter</a> (Windows)</li>
 	<li>Informatica Cloud</li>
 	<li>SSIS (SQL Integration Services)</li>
 	<li><a href="https://zappysys.com/blog/import-rest-api-json-sql-server/" target="_blank" rel="noopener">SQL Server</a></li>
 	<li><a href="https://zappysys.com/blog/read-write-rest-api-data-in-talend-json-xml-soap/" target="_blank" rel="noopener">Talend Data Studio</a></li>
 	<li><a href="https://zappysys.com/blog/pentaho-read-rest-api-in-pentaho/" target="_blank" rel="noopener">Pentaho Kettle</a></li>
 	<li>Oracle OBIEE</li>
 	<li>Many more (not in this list).....</li>
</ul>
</td>
<td>
<ul>
 	<li>Visual Studio</li>
 	<li><a href="https://zappysys.com/blog/calling-rest-api-in-c/" target="_blank" rel="noopener">C#</a></li>
 	<li>C++</li>
 	<li><a href="https://zappysys.com/blog/connect-java-to-rest-api-json-soap-xml/" target="_blank" rel="noopener">JAVA</a></li>
 	<li><a href="https://zappysys.com/blog/set-rest-python-client/" target="_blank" rel="noopener">Python</a></li>
 	<li>PHP</li>
 	<li><a href="https://zappysys.com/blog/call-rest-api-powershell-script-export-json-csv/" target="_blank" rel="noopener">PowerShell</a></li>
 	<li><a href="https://zappysys.com/blog/import-rest-api-json-sql-server/" target="_blank" rel="noopener">T-SQL (Using Linked Server)</a></li>
</ul>
</td>
</tr>
</tbody>
</table>
&nbsp;</div>
<h2>Remove Fiddler Root Certificate (Uninstall / Untrust)</h2>
<p>The Fiddler certificate is unique per machine / user, so you do not have to worry about someone else reusing it to intercept traffic, but still, for some reason, if you would like to uninstall the Fiddler root certificate (installed when you checked the Decrypt option), then perform the following steps.</p>
<ol>
<li>Goto <strong>Tools &gt; Options &gt; HTTPS</strong></li>
<li><strong>Uncheck the Decrypt</strong> option first if it&#8217;s checked</li>
<li>Click on <strong>Actions</strong> &gt; <strong>Remove interception Certificates</strong></li>
</ol>
<div id="attachment_11076" style="width: 786px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2016/07/remove-fiddler-root-certificate.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11076" class="size-full wp-image-11076" src="https://zappysys.com/blog/wp-content/uploads/2016/07/remove-fiddler-root-certificate.jpg" alt="How to remove Fiddler Root Certificate" width="776" height="374" srcset="https://zappysys.com/blog/wp-content/uploads/2016/07/remove-fiddler-root-certificate.jpg 776w, https://zappysys.com/blog/wp-content/uploads/2016/07/remove-fiddler-root-certificate-300x145.jpg 300w, https://zappysys.com/blog/wp-content/uploads/2016/07/remove-fiddler-root-certificate-768x370.jpg 768w" sizes="(max-width: 776px) 100vw, 776px" /></a><p id="caption-attachment-11076" class="wp-caption-text">How to remove Fiddler Root Certificate</p></div>
<h2>Coding-Free REST API integration using ODBC Drivers (For many Reporting / ETL Tools)</h2>
<p>If you ever need to read /write data from REST API without writing a single line of code, <a href="https://zappysys.com/products/odbc-powerpack/">check these ODBC Drivers / API Connectors</a>.</p>
<div style="width: 1090px" class="wp-caption alignnone"><a href="https://zappysys.com/products/odbc-powerpack/"><img loading="lazy" decoding="async" class="size-full" src="https://zappysys.com/wp-content/uploads/2017/11/slider-odbc-powerpack-rest-api-json-xml-drivers-1.png" alt="ODBC PowerPack is a collection of high-performance drag and drop ODBC / API Drivers for various Modern / Legacy data sources. Connect data in Reporting / ETL Tools / Programming Languages. " width="1080" height="450" /></a><p class="wp-caption-text">ODBC PowerPack is a collection of high-performance drag and drop ODBC / API Drivers for various Modern / Legacy data sources. Connect data in Reporting / ETL Tools / Programming Languages.</p></div>
<h2>Coding-Free REST API integration in SSIS (Microsoft ETL Tool)</h2>
<p>If you use SSIS as your primary etl tool and you have API integration usecase then <a href="https://zappysys.com/products/ssis-powerpack/" target="_blank" rel="noopener">check this product</a>.</p>
<p><a href="https://zappysys.com/products/ssis-powerpack/"><img decoding="async" src="//zappysys.com/wp-content/uploads/2016/10/slider-ssis-powerpack-1.png" /></a></p>
<h2></h2>
<p>The post <a href="https://zappysys.com/blog/how-to-use-fiddler-to-analyze-http-web-requests/">Tutorial &#8211; How to use Fiddler to analyze HTTP Web Requests (Tips)</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
