<?xml-stylesheet type="text/xsl" href="https://sugarclub.sugarai.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Introducing ExternalResourceClient your friendly Transport Client</title><link>/dev-club/b/dev-blog/posts/introducing-externalresourceclient-your-friendly-http-client</link><description>In our Q3 2022 (12.1) developer webinar, we announced many cool features we&amp;rsquo;re adding in this release, and one that stands out and is most impactful to you as a developer is the cURL replacement by Sugar&amp;#39;s own ExternalResourceClient.
...</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: Introducing ExternalResourceClient your friendly Transport Client</title><link>https://sugarclub.sugarai.com/dev-club/b/dev-blog/posts/introducing-externalresourceclient-your-friendly-http-client</link><pubDate>Thu, 04 Apr 2024 23:54:19 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:13a1cbe5-5a72-498b-b1dd-c33cc1682407</guid><dc:creator>Jennifer Aguilar</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Hello Rafa,&lt;/p&gt;
&lt;p&gt;I have an issue when using ExternalResourceClient POST JSON. When I send a request to an external service, it returns the following message: Mon Apr 1 08:40:38 2024 [24498][dfd6828b-6279-4872-af6b-ab95556f50f3][FATAL] file_get_contents(https://104.21.71.251/APIS/v1/ConexionTerceros/GenerarLeadMitsubishiConexionPlanta.php): Failed to open stream: HTTP request failed!&lt;/p&gt;
&lt;p&gt;Why does it return a URL with the IP of the domain of the service provided by an external party? The URL we are trying to consume the service from is: &lt;a id="" href="https://sale-u.com/APIS/v1/ConexionTerceros/GenerarLeadMitsubishiConexionPlanta.php" target="_new"&gt;https://sale-u.com/APIS/v1/ConexionTerceros/GenerarLeadMitsubishiConexionPlanta.php&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I&amp;#39;m sharing the following code with you. If you could guide me by providing a solution so that it doesn&amp;#39;t respond with a &amp;quot;Failed to open stream: HTTP request failed!&amp;quot; error.&lt;/p&gt;
&lt;div class="flex-1 overflow-hidden"&gt;
&lt;div class="react-scroll-to-bottom--css-jjkuz-79elbk h-full"&gt;
&lt;div class="react-scroll-to-bottom--css-jjkuz-1n7m0yu"&gt;
&lt;div class="flex flex-col text-sm pb-9"&gt;
&lt;div class="w-full text-token-text-primary" data-testid="conversation-turn-5"&gt;
&lt;div class="px-4 py-2 justify-center text-base md:gap-6 m-auto"&gt;
&lt;div&gt;
&lt;div class="relative flex w-full flex-col agent-turn"&gt;
&lt;div class="flex-col gap-1 md:gap-3"&gt;
&lt;div class="mt-1 flex justify-start gap-3 empty:hidden"&gt;
&lt;div&gt;
&lt;div class="flex"&gt;&lt;span class="" data-state="closed"&gt;[embed:dc8ab71f-3b98-42d9-b0f6-e21e02a0f8e2:17a4ae4a-dbf2-42ab-bf1b-9c4451ceb185:type=php&amp;text=if%20%28%24urlSaleu%20%21%3D%20%27%27%20%26%26%20%24headerApi%20%21%3D%20%27%27%20%26%26%20%24secretToken%20%21%3D%20%27%27%29%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24GLOBALS%5B%27log%27%5D-%3Efatal%28%22%2A%2A%2A%2A%2A%20PARAMETROS%20DE%20CONEXI%C3%93N%20ESTABLECIDAS%20CON%20SALE-U%20%2A%2A%2A%2A%2A%20%22%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24GLOBALS%5B%27log%27%5D-%3Efatal%28%22%2A%2A%2A%2A%2A%20URL%20SALE-U%20%2A%2A%2A%2A%2A%20%22.%20%24urlSaleu%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24GLOBALS%5B%27log%27%5D-%3Efatal%28%22%2A%2A%2A%2A%2A%20HEADER%20SALE-U%20%2A%2A%2A%2A%2A%20%22.%20%24headerApi%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24GLOBALS%5B%27log%27%5D-%3Efatal%28%22%2A%2A%2A%2A%2A%20SECRET%20SALE-U%20%2A%2A%2A%2A%2A%20%22.%20%24secretToken%29%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2FSERVICIO%20SALEU%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24endpointUrl%20%3D%20%24urlSaleu%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24headers%20%3D%20array%28%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27Authorization%27%20%3D%3E%20%24headerApi%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2FSERVICIO%20TIPO%20FORM-DATA%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24dataSaleu%20%3D%20array%28%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27jsnInfo%27%20%3D%3E%20json_encode%28array%28%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22infoAuthApp%22%20%3D%3E%20array%28%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22sSecretTokenApp%22%20%3D%3E%20%24secretToken%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22tmTimeStampSol%22%20%3D%3E%20%24fechaHoraActual%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22infoAuthUsu%22%20%3D%3E%20%5B%5D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22infoJSON%22%20%3D%3E%20array%28%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22sTituloLead%22%20%3D%3E%20%22LLead%20de%20Mitsu%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22tmFechaRegistro%22%20%3D%3E%20%24fechaRegistroFuente%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22sEmail%22%20%3D%3E%20%24emailLead%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22sNombre%22%20%3D%3E%20%24bean-%3Etct_nombre_c%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22sApellidoPaterno%22%20%3D%3E%20%24bean-%3Etct_apellido_paterno_c%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22sApellidoMaterno%22%20%3D%3E%20%24bean-%3Etct_apellido_materno_c%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22sFuenteLead%22%20%3D%3E%20%24fuenteLead%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22sDetalleFuente%22%20%3D%3E%20%24fuenteDetalleLead%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22sTipoLead%22%20%3D%3E%20%24accionLead%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22sAreaEnvioPrs%22%20%3D%3E%20%24areaEnvioPrs%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22sNumTelefono%22%20%3D%3E%20%24bean-%3Ephone_mobile%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22sProducto%22%20%3D%3E%20%24modeloInteres%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22sDistribuidor%22%20%3D%3E%20%24idDistribuidor%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22sIDLeadSistema%22%20%3D%3E%20%24bean-%3Etct_dealer_id_c%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22sEdad%22%20%3D%3E%20%24bean-%3Etct_edad_lead_c%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22sGenero%22%20%3D%3E%20%24generoLead%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22sIntencionCompra%22%20%3D%3E%20%24bean-%3Etct_estimacion_compra_c%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22bPrivacidadDatos%22%20%3D%3E%20%24privDatos%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22bUsoDatos%22%20%3D%3E%20%24usoDatos%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22tmFechaPrueba%22%20%3D%3E%20%24fechaCitaIdealPM%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22tmFechaCita%22%20%3D%3E%20%24fechaCitaIdealServicio%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24GLOBALS%5B%27log%27%5D-%3Efatal%28%24dataSaleu%29%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20ExternalResourceClient%20POST%20JSON%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24response%20%3D%20%28new%20ExternalResourceClient%28%29%29-%3Epost%28%24endpointUrl%2C%20%24dataSaleu%2C%20%24headers%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20catch%20%28RequestException%20%24e%29%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20throw%20new%20%5CSugarApiExceptionError%28%24e-%3EgetMessage%28%29%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24GLOBALS%5B%27log%27%5D-%3Efatal%28%27Error%20Service%20SALE-U%3A%20%27%20.%20%24e-%3EgetMessage%28%29%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%24response%20%21%3D%3D%20null%29%20%7B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24respuesta%20%3D%20json_decode%28%24response-%3EgetBody%28%29-%3EgetContents%28%29%2C%20true%29%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24GLOBALS%5B%27log%27%5D-%3Efatal%28%24respuesta%29%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%24respuesta%5B%27success%27%5D%20%3D%3D%201%20%7C%7C%20%24respuesta%5B%27success%27%5D%20%3D%3D%20%271%27%29%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24bean-%3Etct_id_lead_salesu_c%20%3D%20%24respuesta%5B%27AgLead%27%5D%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24bean-%3Etct_plataforma_c%20%3D%20%27SALEU%27%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%24respuesta%5B%27success%27%5D%20%3D%3D%200%20%7C%7C%20%24respuesta%5B%27success%27%5D%20%3D%3D%20%270%27%29%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24bean-%3Etct_error_int_c%20%3D%20%24respuesta%5B%27message%27%5D%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24bean-%3Etct_plataforma_c%20%3D%20%27SALEU%27%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24GLOBALS%5B%27log%27%5D-%3Efatal%28%27Response%20NULL%20-%20Service%20SALE-U%20%27%20.%20%24response%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D]&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Thanks and regards,&lt;/p&gt;&lt;img src="https://sugarclub.sugarai.com/aggbug?PostID=2720&amp;AppID=56&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Introducing ExternalResourceClient your friendly Transport Client</title><link>https://sugarclub.sugarai.com/dev-club/b/dev-blog/posts/introducing-externalresourceclient-your-friendly-http-client</link><pubDate>Fri, 10 Mar 2023 11:43:39 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:13a1cbe5-5a72-498b-b1dd-c33cc1682407</guid><dc:creator>Jordi Escobar</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Hello everyone,&lt;/p&gt;
&lt;p&gt;I have a problem using ExternalRessourceClient, I&amp;#39;ll tell you if you can answer me:&lt;/p&gt;
&lt;p&gt;I used to use this:&amp;nbsp;&lt;span&gt;----------------------------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;$auth_url = $instance_url . &amp;quot;/oauth/token?&amp;quot;;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;$oauth2_token_arguments = array(&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;quot;grant_type&amp;quot; =&amp;gt; &amp;quot;client_credentials&amp;quot;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;quot;client_id&amp;quot; =&amp;gt; &amp;quot;4&amp;quot;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;quot;client_secret&amp;quot; =&amp;gt; &amp;quot;XXXXXXXXXXXXXXXXXXXXXXXX&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;$auth_request = curl_init($auth_url);&lt;/span&gt;&lt;br /&gt;&lt;span&gt;curl_setopt($auth_request, CURLOPT_SSL_VERIFYHOST, 0);&lt;/span&gt;&lt;br /&gt;&lt;span&gt;curl_setopt($auth_request, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);&lt;/span&gt;&lt;br /&gt;&lt;span&gt;curl_setopt($auth_request, CURLOPT_HEADER, false);&lt;/span&gt;&lt;br /&gt;&lt;span&gt;curl_setopt($auth_request, CURLOPT_SSL_VERIFYPEER, 0);&lt;/span&gt;&lt;br /&gt;&lt;span&gt;curl_setopt($auth_request, CURLOPT_RETURNTRANSFER, 1);&lt;/span&gt;&lt;br /&gt;&lt;span&gt;curl_setopt($auth_request, CURLOPT_FOLLOWLOCATION, 0);&lt;/span&gt;&lt;br /&gt;&lt;span&gt;curl_setopt($auth_request, CURLOPT_HTTPHEADER, array(&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;quot;Content-Type: application/json&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;//convert arguments to json&lt;/span&gt;&lt;br /&gt;&lt;span&gt;$json_arguments = json_encode($oauth2_token_arguments);&lt;/span&gt;&lt;br /&gt;&lt;span&gt;curl_setopt($auth_request, CURLOPT_POSTFIELDS, $json_arguments);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;//execute request&lt;/span&gt;&lt;br /&gt;&lt;span&gt;$oauth2_token_response = curl_exec($auth_request);&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;----------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;And now I use this:&lt;span&gt;----------------------------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;$auth_url = $instance_url . &amp;quot;/oauth/token?&amp;quot;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;$administrationObject = new Administration();&lt;/span&gt;&lt;br /&gt;&lt;span&gt;$administrationObject-&amp;gt;retrieveSettings(&amp;#39;customOauth2&amp;#39;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;$oauth2_token_arguments = array(&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;quot;grant_type&amp;quot; =&amp;gt; &amp;quot;client_credentials&amp;quot;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;quot;client_id&amp;quot; =&amp;gt; &amp;quot;4&amp;quot;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;quot;client_secret&amp;quot; =&amp;gt; &amp;quot;XXXXXXXXXXXXXXXX&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;$json_arguments = json_encode($oauth2_token_arguments);&lt;/span&gt;&lt;br /&gt;&lt;span&gt;try {&lt;/span&gt;&lt;br /&gt;&lt;span&gt;$headers = array(&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;#39;Content-Type&amp;#39; =&amp;gt; &amp;#39;application/json&amp;#39;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span&gt;$payload = $json_arguments;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;$response = (new ExternalResourceClient())-&amp;gt;post($auth_url, $payload, $headers);&lt;/span&gt;&lt;br /&gt;&lt;span&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span&gt;catch (RequestException $e) {&lt;/span&gt;&lt;br /&gt;&lt;span&gt;throw new \SugarApiExceptionError($e-&amp;gt;getMessage());&lt;/span&gt;&lt;br /&gt;&lt;span&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;$oauth2_token_response_obj = json_decode($response-&amp;gt;getBody()-&amp;gt;getContents());&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;----------------------------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;But I get this error:&amp;nbsp;&lt;a href="https://XXX.XXX.XXX/oauth/token"&gt;https://XXX.XXX.XXX/oauth/token&lt;/a&gt;&lt;span&gt;: failed to open stream: operation failed&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;In my local php server that is where I do the tests I have the parameter &lt;span&gt;allow_url_fopen&amp;nbsp;&lt;/span&gt;to ON.&lt;/p&gt;
&lt;p&gt;Any more ideas? ThanksSSS!!!!&lt;/p&gt;&lt;img src="https://sugarclub.sugarai.com/aggbug?PostID=2720&amp;AppID=56&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Introducing ExternalResourceClient your friendly Transport Client</title><link>https://sugarclub.sugarai.com/dev-club/b/dev-blog/posts/introducing-externalresourceclient-your-friendly-http-client</link><pubDate>Tue, 03 Jan 2023 17:38:32 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:13a1cbe5-5a72-498b-b1dd-c33cc1682407</guid><dc:creator>Eduardo Carrasco</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&lt;span&gt;Hi,&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;I Have a following&amp;nbsp;code, but in the new version 12.2 module loader does not allow uploading the package.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;You can help me with an example to replace code or functions to generate a csv file into upload&amp;nbsp;folder please.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Thank you.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Current code:&lt;/div&gt;
&lt;div&gt;$note_id = $Notes-&amp;gt;id;&lt;br /&gt;$folder = substr($note_id, 5, 3);&lt;br /&gt;$csvfile = &amp;#39;upload/&amp;#39;.$folder.&amp;#39;/&amp;#39;.$note_id;&lt;br /&gt;mkdir(&amp;quot;upload/&amp;quot;.$folder);&lt;br /&gt;$fp = fopen($csvfile, &amp;#39;w&amp;#39;);&lt;br /&gt;$csvHeader = &amp;quot;IDENTIFICADOR;NOMBRE;APELLIDOS;RFC;CORREO;TELEFONO\n&amp;quot;;&lt;/div&gt;
&lt;div&gt;fwrite($fp, $csvHeader);&lt;/div&gt;
&lt;div&gt;fclose($fp);&lt;/div&gt;&lt;img src="https://sugarclub.sugarai.com/aggbug?PostID=2720&amp;AppID=56&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Introducing ExternalResourceClient your friendly Transport Client</title><link>https://sugarclub.sugarai.com/dev-club/b/dev-blog/posts/introducing-externalresourceclient-your-friendly-http-client</link><pubDate>Wed, 23 Nov 2022 00:35:17 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:13a1cbe5-5a72-498b-b1dd-c33cc1682407</guid><dc:creator>Dmitrii Mikhalchenko</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Hi Rafael,&lt;/p&gt;
&lt;p&gt;We are rebuilding Customer integration to use&amp;nbsp;&lt;span&gt;ExternalRessourceClient, but its not working.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This is how we use it:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;[embed:dc8ab71f-3b98-42d9-b0f6-e21e02a0f8e2:a9968421-2d62-4a89-b923-ac57145f6d12:type=text&amp;text=use%20Sugarcrm%5CSugarcrm%5CSecurity%5CHttpClient%5CExternalResourceClient%3B%0D%0Ause%20Sugarcrm%5CSugarcrm%5CSecurity%5CHttpClient%5CRequestException%3B%0D%0A%0D%0A%24url%20%3D%20%27https%3A%2F%2Fconnect.eventpro.net%2FApiAU%2FDataService.svc%2Fleads%3F%27.%20urlencode%28%27filter%3D%28Modified%20%3E%3D%20%222022-06-27T07%3A37%3A00.000%22%20AND%20Modified%20%3C%3D%20%222022-11-28T09%3A19%3A17.743%22%29%20AND%20%5BContact.ContactCategory2List%5D%5BItemCode%3D%22Venue%20Client%22%5D.Exists%28%29%27%29%3B%0D%0Atry%20%7B%0D%0A%20%20%20%20%2F%2F%20Set%20timeout%20to%2060%20seconds%20and%2010%20max%20redirects%0D%0A%20%20%20%20%24response%20%3D%20%28new%20ExternalResourceClient%2860%2C%2010%29%29-%3Eget%28%24url%2C%20%20%5B%27authorization%27%20%3D%3E%20%20%27WEDrzt%252b22mHC7uyQGXH3qFYf7za0jDSSSHipe%252b2akFTBR4y1hJWKRR258E5yjVjaXQuY2nT%25247893R21iTjBMq6dw%253d%253d%27%5D%29%3B%0D%0A%7D%20catch%20%28RequestException%20%24e%29%20%7B%0D%0A%20%20%20%20%24GLOBALS%5B%27log%27%5D-%3Elog%28%27fatal%27%2C%20%27Error%3A%20%27%20.%20%24e-%3EgetMessage%28%29%29%3B%0D%0A%20%20%20%20throw%20new%20%5CSugarApiExceptionError%28%24e-%3EgetMessage%28%29%29%3B%0D%0A%7D%0D%0A%0D%0A%24httpCode%20%3D%20%24response-%3EgetStatusCode%28%29%3B%0D%0A%0D%0Aif%20%28%24httpCode%20%3E%3D%20400%29%20%7B%0D%0A%20%20%20%20%24GLOBALS%5B%27log%27%5D-%3Elog%28%22fatal%22%2C%20%22Request%20failed%20with%20status%3A%20%22%20.%20%24httpCode%29%3B%0D%0A%20%20%20%20throw%20new%20%5CSugarApiException%28%22Request%20failed%20with%20status%3A%20%22%20.%20%24httpCode%2C%20null%2C%20null%2C%20%24httpCode%29%3B%0D%0A%7D%0D%0Aecho%20json_decode%28%24response-%3EgetBody%28%29-%3EgetContents%28%29%2C%20true%29%3B%20%2F%2F%20will%20give%20response%20in%20array]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;and this is response we get:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;[embed:dc8ab71f-3b98-42d9-b0f6-e21e02a0f8e2:42d557d3-754c-4583-9f1d-c568af7d61a3:type=text&amp;text=Sugarcrm%5CSugarcrm%5CSecurity%5CHttpClient%5CRequestException%20Object%0D%0A%28%0D%0A%20%20%20%20%5Bmessage%3Aprotected%5D%20%3D%3E%20file_get_contents%28https%3A%2F%2F104.153.193.29%2FApiAU%2FDataService.svc%2Fleads%3Ffilter%253D%2528Modified%2B%253E%253D%2B%25222022-06-27T07%253A37%253A00.000%2522%2BAND%2BModified%2B%253C%253D%2B%25222022-11-28T09%253A19%253A17.743%2522%2529%2BAND%2B%255BContact.ContactCategory2List%255D%255BItemCode%253D%2522Venue%2BClient%2522%255D.Exists%2528%2529%29%0D%0A%20%20%20%20%20%20%20%20%3A%20failed%20to%20open%20stream%3A%20no%20suitable%20wrapper%20could%20be%20found%0D%0A%20%20%20%20%5Bstring%3AException%3Aprivate%5D%20%3D%3E%20%0D%0A%20%20%20%20%5Bcode%3Aprotected%5D%20%3D%3E%200%0D%0A%20%20%20%20%5Bfile%3Aprotected%5D%20%3D%3E%20%2Fhome%2Fwebsites%2Fagnsw.crm.onlocal.com%2Fagnsw-sugarcrm%2Fwwwroot%2Fsrc%2FSecurity%2FHttpClient%2FExternalResourceClient.php%0D%0A%20%20%20%20%5Bline%3Aprotected%5D%20%3D%3E%20199%0D%0A%20%20%20%20%5Btrace%3AException%3Aprivate%5D%20%3D%3E%20Array%0D%0A%20%20%20%20%20%20%20%20%28%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B0%5D%20%3D%3E%20Array%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Bfile%5D%20%3D%3E%20%2Fhome%2Fwebsites%2Fagnsw.crm.onlocal.com%2Fagnsw-sugarcrm%2Fwwwroot%2Fsrc%2FSecurity%2FHttpClient%2FExternalResourceClient.php%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Bline%5D%20%3D%3E%2084%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Bfunction%5D%20%3D%3E%20request%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Bclass%5D%20%3D%3E%20Sugarcrm%5CSugarcrm%5CSecurity%5CHttpClient%5CExternalResourceClient%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Btype%5D%20%3D%3E%20-%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B1%5D%20%3D%3E%20Array%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Bfile%5D%20%3D%3E%20%2Fhome%2Fwebsites%2Fagnsw.crm.onlocal.com%2Fagnsw-sugarcrm%2Fwwwroot%2FRunScheduler.php%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Bline%5D%20%3D%3E%2026%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Bfunction%5D%20%3D%3E%20get%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Bclass%5D%20%3D%3E%20Sugarcrm%5CSugarcrm%5CSecurity%5CHttpClient%5CExternalResourceClient%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Btype%5D%20%3D%3E%20-%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%0D%0A%0D%0A%20%20%20%20%20%20%20%20%29%0D%0A%0D%0A%20%20%20%20%5Bprevious%3AException%3Aprivate%5D%20%3D%3E%20%0D%0A%29]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;2 options we found:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;1. set&amp;nbsp;&lt;strong&gt;php_admin_flag allow_url_fopen &amp;quot;On&amp;quot; &lt;/strong&gt;but this is sugarondemand Cloud, not sure if it would be prohibited;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;2. There is no issue if we use GuzzleHttp\Client and no PHP_Flag required to set up:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;[embed:dc8ab71f-3b98-42d9-b0f6-e21e02a0f8e2:e36fb1f7-3550-48be-a01e-8ad68c8d1233:type=text&amp;text=use%20GuzzleHttp%5CPsr7%5CRequest%3B%0D%0A%24client%20%3D%20new%20GuzzleHttp%5CClient%28%5B%27headers%27%20%3D%3E%20%5B%27authorization%27%20%3D%3E%20%27WEFdzt%252b22mHC7uyQGXH3qFYf7za0jDSSSHipe%252b2akGHTE4y1hJWKRR258E5yjVjaXQuY2nT%252f7yR21iTjBMq6dw%253d%253d%27%5D%5D%29%3B%0D%0A%24url%20%3D%20%27https%3A%2F%2Fconnect.eventpro.net%2FApiAU%2FDataService.svc%2Fleads%3F%27.%20urlencode%28%27filter%3D%28Modified%20%3E%3D%20%222022-06-27T07%3A37%3A00.000%22%20AND%20Modified%20%3C%3D%20%222022-11-28T09%3A19%3A17.743%22%29%20AND%20%5BContact.ContactCategory2List%5D%5BItemCode%3D%22Venue%20Client%22%5D.Exists%28%29%27%29%3B%0D%0Atry%20%7B%0D%0A%20%20%20%20%24request%20%3D%20new%20Request%28%27GET%27%2C%20%24url%2C%20%5B%27authorization%27%20%3D%3E%20%27WEJbzt%252b22mHC7uyQGXH3qFYf7za0jDSSSHipe%252b2akFTBR4y1hJWKRR258E5yjVjaXQuY2nT%252f7yR21iTjBMq6dw%253d%253d%27%5D%29%3B%0D%0A%20%20%20%20%24res%20%3D%20%20%24client-%3Esend%28%24request%2C%20%5B%27headers%27%20%3D%3E%20%5B%27authorization%27%20%3D%3E%20%27WEJbzt%252b22mHC7uyQGXH3qFYf7za0jDSSSHipe%252b2akFTBR4y1hJWKRR258E5yjVjaXQuY2nT%252f7yR21iTjBMq6dw%253d%253d%27%5D%5D%29%3B%0D%0A%20%20%20%20%24output%20%3D%20json_decode%28%24res-%3EgetBody%28%29-%3EgetContents%28%29%2C%20true%29%3B%0D%0A%7D%20catch%20%28%5CGuzzleHttp%5CException%5CGuzzleException%20%24e%29%20%7B%0D%0A%20%20%20%20%24errorMessage%20%3D%20json_decode%28%24e-%3EgetResponse%28%29-%3EgetBody%28true%29%29%3B%0D%0A%20%20%20%20echo%20%22%3Cpre%3E%22%3B%20print_r%28%24errorMessage%29%3B%0D%0A%7D]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;What&amp;nbsp;would be&amp;nbsp;your recommendation?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Regards,&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Dmitrii&lt;/span&gt;&lt;/p&gt;&lt;img src="https://sugarclub.sugarai.com/aggbug?PostID=2720&amp;AppID=56&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Introducing ExternalResourceClient your friendly Transport Client</title><link>https://sugarclub.sugarai.com/dev-club/b/dev-blog/posts/introducing-externalresourceclient-your-friendly-http-client</link><pubDate>Thu, 28 Jul 2022 03:27:56 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:13a1cbe5-5a72-498b-b1dd-c33cc1682407</guid><dc:creator>Matthew Rees-George</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Having recently developed a CSV/FTP&amp;nbsp;integration (don&amp;#39;t judge!) for sugarondemand this will affect us significantly. It worked because curl supports ftp/sftp/ftps in ondemand.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m guessing I need to switch to a middleware solution? We already do this to support MS SQL.&lt;/p&gt;&lt;img src="https://sugarclub.sugarai.com/aggbug?PostID=2720&amp;AppID=56&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Introducing ExternalResourceClient your friendly Transport Client</title><link>https://sugarclub.sugarai.com/dev-club/b/dev-blog/posts/introducing-externalresourceclient-your-friendly-http-client</link><pubDate>Wed, 06 Jul 2022 10:10:34 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:13a1cbe5-5a72-498b-b1dd-c33cc1682407</guid><dc:creator>Jeroen Somhorst</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Thanks for this great explanation. I&amp;#39;m just curious why a new custom library / client was introduced instead of implementing a own Guzzle or any other standarized client?&amp;nbsp;&lt;/p&gt;&lt;img src="https://sugarclub.sugarai.com/aggbug?PostID=2720&amp;AppID=56&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Introducing ExternalResourceClient your friendly Transport Client</title><link>https://sugarclub.sugarai.com/dev-club/b/dev-blog/posts/introducing-externalresourceclient-your-friendly-http-client</link><pubDate>Wed, 06 Jul 2022 07:09:18 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:13a1cbe5-5a72-498b-b1dd-c33cc1682407</guid><dc:creator>Enes Saridogan</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Hello Rafa,&lt;/p&gt;
&lt;p&gt;Thanks for this article.&lt;/p&gt;
&lt;p&gt;What about Guzzle ? We replaced by ourself some curl requests by Guzzle, are we impacted on that ? Can we continue to use Guzzle or should we change to ExternalRessourceClient ?&lt;/p&gt;
&lt;p&gt;Thanks in advance and best regards,&lt;/p&gt;
&lt;p&gt;Enes&lt;/p&gt;&lt;img src="https://sugarclub.sugarai.com/aggbug?PostID=2720&amp;AppID=56&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item></channel></rss>