0

カールに関して具体的な質問がありました。私は自分のxmlページを呼び出したいのですが、端末から次のようなものを実行しています:

curl -d @<xml page> <url> 

ただし、次のコマンドを実行すると、次のようになります。

Invalid request structure

私のxmlページのリクエストは次のとおりです。

<example type="request">
            <doLogin>
                    <userName>my_username</userName>
                    <password>my_password</password>
                    <...other details>
            </doLogin>
</example>

curl コマンドでユーザー名とパスワードのパラメーターを渡すにはどうすればよいですか?

4

2 に答える 2

4

XMLファイルを投稿したい場合は、これを試してみてください:

curl -d "@./file.xml" -X POST -H 'Content-Type:text/xml' http://domain.tld/path

代わりに、ユーザー名/パスワードが基本認証によって処理される場合は、 UNIXシェルを使用してこれを実行してみてください。

user=$(xmllint --xpath '/example/doLogin/userName/text()' file.xml)
pass=$(xmllint --xpath '/example/doLogin/password/text()' file.xml)
curl -u "$user:$pass" http://domain.tld/path

XMLファイル :

<?xml version="1.0" encoding="utf-8"?>
<example type="request">
            <doLogin>
                    <userName>my_username</userName>
                    <password>my_password</password>
                    <...other details>
            </doLogin>
</example>
于 2013-02-05T23:21:56.193 に答える
0

その XML ファイルを POST で送信しながら、その XML 内でカスタム ユーザーとパスワードをすべて 1 つのコマンド ラインから使用する方法をお探しですか?

その場合、sed を介してテンプレート XML ファイルをパイプして正しい値を入力できるようにし、curl にファイルを読み取らせて stdin から投稿させます。

$ sed -e "s/my_username/$user/g" -e "s/my_password/$password/g" < テンプレート ファイル | curl -d@- [URL]

于 2013-02-05T21:34:38.857 に答える