Pergunta

Há muitas perguntas sobre o StackOverflow sobre o Curl, mas não consegui descobrir o que estou fazendo o que não devo. Estou tentando chamar um serviço RESTful que escrevi usando a API Jersey e estou tentando postar uma string xml e recebo um erro HTTP 415, que deveria ser um erro do tipo mídia.

Aqui na minha chamada de script de shell para o 1º serviço:

ABC =curl http://gf...:8080/InChItoD/inchi/3dstructure?InChIstring=$inchi

eco $ ABC (isso funciona bem, a saída que ele retorna é fornecida abaixo.)

Publicando esta string xml no segundo serviço

def = curl -d $abc -H "Content-Type:text/xml" http://gf...:8080/XML2G/xml3d/gssinput

Estou tendo o erro a seguir:

... ... ... HTTP Status 415 Relatório de status Descrição da mensagem. O servidor recusou esta solicitação porque a entidade da solicitação está em um formato não suportado pelo recurso solicitado para o método solicitado () .APACHACH TOMCAT/6.0.26

Esta é uma amostra de string xml que estou tentando postar

<?xml version="1.0"?><molecule xmlns="http://www.xml-cml.org/schema"> <atomArray> <atom id="a1" elementType="N" formalCharge="1" x3="0.997963" y3="-0.002882" z3="-0.004222"/> <atom id="a2" elementType="H" x3="2.024650" y3="-0.002674" z3="0.004172"/> <atom id="a3" elementType="H" x3="0.655444" y3="0.964985" z3="0.004172"/> <atom id="a4" elementType="H" x3="0.649003" y3="-0.496650" z3="0.825505"/> <atom id="a5" elementType="H" x3="0.662767" y3="-0.477173" z3="-0.850949"/> </atomArray> <bondArray> <bond atomRefs2="a1 a2" order="1"/> <bond atomRefs2="a1 a3" order="1"/> <bond atomRefs2="a1 a4" order="1"/> <bond atomRefs2="a1 a5" order="1"/> </bondArray></molecule>

desde já, obrigado

Foi útil?

Solução

Primeiro você pode tentar citar o seu $abc corda. por exemplo curl -d "$abc". Se isso não ajudar, tente escapar desses metacharacters, como citações duplas e barras para a frente. por exemplo

abc=$(echo "$abc" | sed 's|\(["/]\)|\\&|g' )
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top