Bom dia
Tenho que retornar um array em um post.
Utilizo FwRest.
No teste via Insomnia eu coloco multipart e está ok.
Segue trecho que estou utilizando, mas sem o resultado esperado.
Aadd(aHeader2, 'Content-Type: multipart/form-data')
oRest2:SetPath('/wp-json/api/aprovados/importados')
jimportados := Jsonobject():New()
jimportados['candidatos'] := { "2828" }
oRest2:SetPostParams( jimportados:ToJson() )
//cPostParms := 'candidatos[]="2828"'
//oRest2:SetPostParams(cPostParms)
lResult := oRest2:Post( aHeader, jimportados:ToJson())
cResultado2 := oRest2:GetResult()
conout(cResultado2)
Solução que encontrei, vamos lá:
1) FwRest não está preparada para MultiPart/form-data
2) Somente é possível via HttpPost
3) cPostParms precisa ser conforme abaixo:
cPostParms := ' Content-Disposition: form-data; name="candidatos[]" '
cPostParms += CHR(13)+CHR(10)
cPostParms += CHR(13)+CHR(10)
cPostParms += '2828'+CHR(13)+CHR(10)
Ou seja, precisa pular 2 linhas antes de informar o conteúdo do array
’ Content-Disposition: form-data; name=“candidatos” ’
Boa tarde!
Conversando com o pessoal responsável pela classe FWRest, a mesma já possui o HttpPost encapsulada.
Estava com o mesmo problema e conseguir resolver dessa forma.
aHeader := {"Content-Type: multipart/form-data"}
oRest := FWRest():New("Seu Endpoint")
oRest:SetPostParams(cBody)
oRest:Post(aHeader)
O cBody precisa ser no mesmo formato utilizada na documentação: https://tdn.totvs.com/display/tec/HTTPPost.
Exemplo:
cBody += 'Content-Disposition: form-data; name="Key"' + CHR(13)+CHR(10) + CHR(13)+CHR(10)
cBody += 'Value' + CHR(13)+CHR(10)
Observação: O Key precisa sempre ter duas quebras de linhas e o value uma quebra