シェルスクリプトを使用してAPIを呼び出したいのですが、ヘッダーを正しく挿入できません。スクリプトに問題があります。よろしくお願いします。
シェルスクリプト:
#!/bin/bash curl-H "権限付与: BasicABCDEFGHIJKLMNOPQRSTUVWXYZ" -H "コンテンツタイプ: application/xml" -X POST -i -d "" -o session.xml http://abcd:xxxx/api/auth/ セッション= `grep -i x-rest session.xml |head -1 |cut -d '' -f 2` $セッションをエコーします。 セット-xxx curl-H "X-RestSvcSessionId: ${session}" -X GET "http://abcd:xxxx/api/jobs"
出力:
<pre>
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 5475 0 5475 0 0 43457 0 --:--:-- --:--:-- --:--:-- 43800
OGIyMDUxYTctNjMzNC00MjhjLWJiOTEtZjQ2YmMwZGY1NmY3
-X GET http://a.b.c.d:xxxx/api/jobsjMzNC00MjhjLWJiOTEtZjQ2YmMwZGY1NmY3
</pre>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request</h2>
<hr><p>HTTP Error 400. The request is badly formed.</p>
</BODY></HTML>
ベストアンサー1
問題はcurl
、grep
または++head
で変数を設定するとtail
最後に新しい行あなたの変数。
新しい行を削除するには、最後の行をcurl
次のように設定します$session
。
curl -H "X-RestSvcSessionId: ${session//[$'\t\r\n ']}" -X GET "http://a.b.c.d:xxxx/api/jobs"
これにより、新しい行とタブ(存在する場合)が削除されます。
私は同じエラーがあります:ここで確認してください