<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: 403 Forbidden error with tHttpClient in Talend Studio</title>
    <link>https://community.qlik.com/t5/Talend-Studio/403-Forbidden-error-with-tHttpClient/m-p/2549415#M149585</link>
    <description>&lt;P&gt;Hello anyxs,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you for reaching out to the &lt;STRONG&gt;Qlik community&lt;/STRONG&gt;.&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Yes, it’s very likely how &lt;A href="https://help.qlik.com/talend/en-US/components/8.0/http/thttpclient" target="_blank"&gt;the HTTPClient &lt;/A&gt;builds the multipart request, especially headers/boundary/encoding or HTTP version.&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Could you please try these most important fixes:&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
 &lt;LI&gt;&lt;STRONG&gt;Force HTTP/1.1&lt;/STRONG&gt; (not HTTP/2)&lt;/LI&gt;
 &lt;LI&gt;Set charset → ISO-8859-15&lt;/LI&gt;
 &lt;LI&gt;File MIME → text/plain (not application/octet-stream)&lt;/LI&gt;
 &lt;LI&gt;Disable &lt;STRONG&gt;Expect: 100-continue&lt;/STRONG&gt;&lt;/LI&gt;
 &lt;LI&gt;Ensure field order: params → then file&lt;BR /&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;If still failing: Talend multipart ≠ Bruno → use &lt;A href="https://help.qlik.com/talend/en-US/components/8.0/esb-rest/trestclient" target="_blank"&gt;tRESTClient &lt;/A&gt;or custom HttpClient.&lt;/P&gt;</description>
    <pubDate>Tue, 19 May 2026 12:51:34 GMT</pubDate>
    <dc:creator>Rahul_Kale</dc:creator>
    <dc:date>2026-05-19T12:51:34Z</dc:date>
    <item>
      <title>403 Forbidden error with tHttpClient</title>
      <link>https://community.qlik.com/t5/Talend-Studio/403-Forbidden-error-with-tHttpClient/m-p/2549389#M149582</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;I am trying to send a multipart/form-data POST request using tHTTPClient to the 123Paie API to import absences.&lt;/P&gt;
&lt;P&gt;The same request works perfectly in Bruno (200 OK) with the following body:&lt;/P&gt;
&lt;P&gt;- id: {{token}} (session token obtained from a previous login call)&lt;BR /&gt;- appli: STD&lt;BR /&gt;- pto: upload_absences_std&lt;BR /&gt;- date: 122025&lt;BR /&gt;- filename: 260429Absences.txt&lt;BR /&gt;- charset: ISO8859-15&lt;BR /&gt;- file: @file(260429Absences.txt)&lt;/P&gt;
&lt;P&gt;In Bruno, no Cookie or JSESSIONID is needed — just the token in the body.&lt;/P&gt;
&lt;P&gt;In Talend, I configured tHTTPClient as follows:&lt;BR /&gt;- Method: POST&lt;BR /&gt;- Body: Form data (multipart)&lt;BR /&gt;- Parameters in body: id, appli, pto, date, filename, charset&lt;BR /&gt;- File attachment: file = 260429Absences.txt (application/octet-stream, ISO8859-15)&lt;BR /&gt;- Token retrieved correctly via globalMap (confirmed with System.out.println)&lt;/P&gt;
&lt;P&gt;However, I always get a 403 Forbidden error.&lt;/P&gt;
&lt;P&gt;Things I have already tried:&lt;BR /&gt;- Passing parameters as query string instead of body&lt;BR /&gt;- Adding Cookie header with JSESSIONID&lt;BR /&gt;- Using cookies file&lt;BR /&gt;- Checking token value before the call (correct)&lt;/P&gt;
&lt;P&gt;Is there something specific about how tHTTPClient handles multipart/form-data that could cause a 403? Could it be related to the HTTP version (currently HTTP/2)?&lt;/P&gt;
&lt;P&gt;Thank you!&lt;/P&gt;</description>
      <pubDate>Tue, 19 May 2026 08:17:55 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/403-Forbidden-error-with-tHttpClient/m-p/2549389#M149582</guid>
      <dc:creator>anyxs</dc:creator>
      <dc:date>2026-05-19T08:17:55Z</dc:date>
    </item>
    <item>
      <title>Re: 403 Forbidden error with tHttpClient</title>
      <link>https://community.qlik.com/t5/Talend-Studio/403-Forbidden-error-with-tHttpClient/m-p/2549415#M149585</link>
      <description>&lt;P&gt;Hello anyxs,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you for reaching out to the &lt;STRONG&gt;Qlik community&lt;/STRONG&gt;.&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Yes, it’s very likely how &lt;A href="https://help.qlik.com/talend/en-US/components/8.0/http/thttpclient" target="_blank"&gt;the HTTPClient &lt;/A&gt;builds the multipart request, especially headers/boundary/encoding or HTTP version.&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Could you please try these most important fixes:&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
 &lt;LI&gt;&lt;STRONG&gt;Force HTTP/1.1&lt;/STRONG&gt; (not HTTP/2)&lt;/LI&gt;
 &lt;LI&gt;Set charset → ISO-8859-15&lt;/LI&gt;
 &lt;LI&gt;File MIME → text/plain (not application/octet-stream)&lt;/LI&gt;
 &lt;LI&gt;Disable &lt;STRONG&gt;Expect: 100-continue&lt;/STRONG&gt;&lt;/LI&gt;
 &lt;LI&gt;Ensure field order: params → then file&lt;BR /&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;If still failing: Talend multipart ≠ Bruno → use &lt;A href="https://help.qlik.com/talend/en-US/components/8.0/esb-rest/trestclient" target="_blank"&gt;tRESTClient &lt;/A&gt;or custom HttpClient.&lt;/P&gt;</description>
      <pubDate>Tue, 19 May 2026 12:51:34 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/403-Forbidden-error-with-tHttpClient/m-p/2549415#M149585</guid>
      <dc:creator>Rahul_Kale</dc:creator>
      <dc:date>2026-05-19T12:51:34Z</dc:date>
    </item>
    <item>
      <title>Re: 403 Forbidden error with tHttpClient</title>
      <link>https://community.qlik.com/t5/Talend-Studio/403-Forbidden-error-with-tHttpClient/m-p/2549424#M149587</link>
      <description>&lt;P data-end="81" data-start="53"&gt;Thanks for your suggestions.&lt;/P&gt;
&lt;P data-end="124" data-start="83"&gt;I’ve already tested all of the following:&lt;/P&gt;
&lt;UL data-end="382" data-start="126"&gt;
&lt;LI data-end="158" data-start="126"&gt;Forced HTTP/1.1 (not HTTP/2)&lt;/LI&gt;
&lt;LI data-end="203" data-start="159"&gt;Charset correctly set to &lt;STRONG data-end="201" data-start="186"&gt;ISO-8859-15&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI data-end="282" data-start="204"&gt;File MIME type set to &lt;STRONG data-end="242" data-start="228"&gt;text/plain&lt;/STRONG&gt; (instead of application/octet-stream)&lt;/LI&gt;
&lt;LI data-end="320" data-start="283"&gt;Disabled &lt;STRONG data-end="318" data-start="294"&gt;Expect: 100-continue&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI data-end="382" data-start="321"&gt;Ensured correct field order (parameters first, then file)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-end="456" data-start="384"&gt;Despite all this, I still consistently get a &lt;STRONG data-end="446" data-start="429"&gt;403 Forbidden&lt;/STRONG&gt; response.&lt;/P&gt;
&lt;P data-end="544" data-start="458"&gt;I also tried using &lt;STRONG data-end="492" data-start="477"&gt;tRestClient&lt;/STRONG&gt; instead of tHTTPClient, but the result is the same.&lt;/P&gt;
&lt;P data-end="544" data-start="458"&gt;&lt;BR /&gt;At this point, I will move forward with a &lt;STRONG data-end="871" data-start="835"&gt;custom HttpClient implementation&lt;/STRONG&gt; to replicate the curl request more precisely.&lt;/P&gt;
&lt;P data-end="544" data-start="458"&gt;&lt;BR /&gt;Thanks &lt;span class="lia-unicode-emoji" title=":thumbs_up:"&gt;👍&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 19 May 2026 13:29:22 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/403-Forbidden-error-with-tHttpClient/m-p/2549424#M149587</guid>
      <dc:creator>anyxs</dc:creator>
      <dc:date>2026-05-19T13:29:22Z</dc:date>
    </item>
  </channel>
</rss>

