1
resposta

Formato do POST para XML não corresponde.

Formato do curso no POST não corresponde:

Começou com este erro: PS C:\WINDOWS\system32> curl -d

<br.com.alura.loja.modelo.Carrinho> <br.com.alura.loja.modelo.Produto>

4000.0 6237 Videogame 4 1
 http://localhost:8081/carrinhos
No linha:2 caractere:37
  • <br.com.alura.loja.modelo.Carrinho>
  • ~ Operador '<' reservado para uso futuro. No linha:3 caractere:36
  • <br.com.alura.loja.modelo.Produto>
    4000.0 6237</id ...
  • ~ Operador '<' reservado para uso futuro. No linha:3 caractere:58
  • <br.com.alura.loja.modelo.Produto>
    4000.0 6237</id ...
  • ~ Operador '<' reservado para uso futuro. No linha:3 caractere:72
  • ... ra.loja.modelo.Produto>
    4000.0 6237 Vid ...
  • ~ Operador '<' reservado para uso futuro. No linha:3 caractere:97
  • ... preco>4000.0 6237 Videogame 4 <quantida ...
  • ~ Operador '<' reservado para uso futuro.
    • CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
    • FullyQualifiedErrorId : RedirectionNotSupported
Depois tentei esta outra forma, mais também não funcionou:

PS C:\WINDOWS\system32> curl -d "<br.com.alura.loja.modelo.Carrinho> <br.com.alura.loja.modelo.Produto>

4000.0 6237  Videogame 4 1 </br.com.alura.loja.modelo.Carrinho>" http://localhost:8081/carrinhos
Invoke-WebRequest : Não é possível localizar um parâmetro posicional que aceite o argumento
'http://localhost:8081/carrinhos'.
No linha:1 caractere:1
  • curl -d "<br.com.alura.loja.modelo.Carrinho> <br.com.alu ...
  • ~
    • CategoryInfo : InvalidArgument: (:) [Invoke-WebRequest], ParameterBindingException
    • FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

Parece que tem que adicionar parametros e não sei como faz.

PRECISO DE AJUDA, mai até agora ninguém ajudou, parece que esta versão do CURL é diferente, não aceita nem o curl --help, veja abaixo:

PS C:\WINDOWS\system32> curl --help curl : O nome remoto não pôde ser resolvido: '--help' No linha:1 caractere:1

  • curl --help
  • ~
    • CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
    • FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
1 resposta

Olá José, tudo bem?

O formato que você está utilizando para enviar o POST não está correto. No caso do primeiro exemplo, você está tentando enviar um XML inválido como dados de requisição. O operador '<' está sendo interpretado de forma incorreta pelo comando curl.

Para corrigir esse problema, você precisa formatar corretamente o XML e passá-lo como dados de requisição. O formato correto seria algo assim:

curl -d "<carrinho><produto><preco>4000.0</preco><id>6237</id><nome>Videogame</nome><quantidade>4</quantidade></produto></carrinho>" http://localhost:8081/carrinhos

Espero ter ajudado e bons estudos!