Como enrolo os dados do formulário POST da linha de comando retornando a página HTML com resposta

1

Estou tentando ler um único valor de um dispositivo habilitado para web. O dispositivo tem um formulário Post simples, que quando retorna uma página HTML. Isso funciona bem no navegador, mas não na linha de comando:

# curl -H "Content-Type: text/html"   -X POST -d '{"FGSP":"Read","D900":"100  ","D901":"0    "}' http://192.168.9.187/GSP.htm

Retorna:

<div id="page">
 <form name="param" method="post">
  <table width="750">
   <tr><td class="cntr">Parameter number</td>
       <td class="cntr"><input name="D900" type="text" value="0    "></input></td>
       <td>&nbsp;</td></tr>
   <tr><td class="cntr">Parameter value</td>
       <td class="cntr"><input name="D901" type="text" value="0     "></input></td>
       <td class="errr">&nbsp                                     </td></tr>
   <tr class="cntr"><td><input type="submit" name="FGSP" value="Read"></input></td>
       <td><input type="submit" name="FGSP" value="Write"></input></td>           </tr>
  </table>
 </form>
</div>

Isso é incorreto, pois o D900 deve ter um valor de 100 e o D901 deve ter um valor de 5 em um post bem-sucedido. Então eu suponho que os parâmetros do post não foram passados corretamente?

Se eu fizer o mesmo a partir do navegador no chrome, funciona:

Como faço para duplicar o que o navegador da Web está fazendo na linha de comando?

    
por David Sindar 06.11.2016 / 17:05

1 resposta

0

Esta solicitação de postagem foi para um sistema incorporado e parece que a ordem dos parâmetros é importante. Assim:

curl -X POST -H "FGSP: Read" -H "D900: 100" -H "D901: 0" -H "Content-Type: application/x-www-form-urlencoded" -H "Cache-Control: no-cache" -H "extra-token: 00000000000000000000000000000000000000000000" -d 'D900=100&D901=0&FGSP=Read' "http://192.168.9.187/GSP.htm"

dá a resposta certa. O comando curl também precisa do token extra com um comprimento bastante longo (suponho que o pad seja preenchido de alguma forma).

    
por 07.11.2016 / 21:50