Jump to content
Fivewin Brasil

DICA: Exemplo de como fazer HTTP PUT usando cURL


vailtom

Recommended Posts

Olá,

Recentemente integramos a API de loja virtual da Tray com nosso software e alguns aspectos foram bem nebulosos, por isto quero dividir com vocês uma dica super útil para casos como este, onde é necessário realizar um HTTP PUT usando lib cUrl.

Segue o exemplo de código que demonstra o trecho mais importante: 

FUNCTION Tray_UpdateEstoque( sku_id, nEstoque, access_token )
   LOCAL cEndPoint := 'https://666.commercesuite.com.br/web_api/products/'+alltrim(str(sku_id))+'?access_token='+access_token
   LOCAL cData := '{"Product": {"stock": '+ALLTRIM(STR(nEstoque))+'}}'
   LOCAL curl
   LOCAL nRet
   LOCAL Buff
   LOCAL Resp
   
   IF !empty( curl := curl_easy_init() )
      curl_easy_setopt( curl, HB_CURLOPT_HTTPHEADER, {"Content-Type:application/json"} )
      curl_easy_setopt( curl, HB_CURLOPT_CUSTOMREQUEST, 'PUT')
      curl_easy_setopt( curl, HB_CURLOPT_URL, cEndPoint )
      curl_easy_setopt( curl, HB_CURLOPT_POSTFIELDS, cData )

      curl_easy_setopt( curl, HB_CURLOPT_FOLLOWLOCATION, 1)
      curl_easy_setopt( curl, HB_CURLOPT_DL_BUFF_SETUP )
      curl_easy_setopt( curl, HB_CURLOPT_SSL_VERIFYPEER, 0 )
      curl_easy_setopt( curl, HB_CURLOPT_SSL_VERIFYHOST, 0 )

      nRet := curl_easy_perform( curl )
      Buff := curl_easy_dl_buff_get( curl )

      curl_easy_cleanup( curl )
      IF (nRet == HB_CURLE_OK)
         hb_jsonDecode( Buff, @Resp )
      ENDIF
   ELSE
      RETURN .F.
   ENDIF
   IF !HB_ISHASH(Resp)
      ? Buff    // Exibe na tela a mensagem de erro obtida
      RETURN .F.
   ENDIF
 * Retorno em caso de sucesso (status code 200 ou 201)
   nRet := Resp['code']
   RETURN (nRet == 200 .OR. nRet == 201)

Em nosso caso utilizamos o compilador Harbour, mas, isto deve servir como base para você caso use outros compiladores.

Espero ter ajudado.

Link to comment
Share on other sites

Se eu não zoar, não sou eu... kkkk eu não entendi pohha nenhuma com pohhha nenhuma(kkkkk), más vamos melhorar mais um pouco:

https://forums.fivetechsupport.com/viewtopic.php?f=3&t=33123

Se bem, que eu não entendi pohha nenhuma do exemplo do forum inter. kkkkkkkkkk Misericórdia....  kkkkkk

Alguém tem luz? Me dê papai.... kkkkkkkkkk brincadeira.

Abs.

Regards, saludos.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...