无法将参数作为 Bash 脚本传递给 Curl 命令
Can not pass parameter into Curl Command as Bash Script
相同的 curl 命令不适用于 bash 脚本。
谁能请
控制台尝试(成功一次):
curl -ki \
--cookie cookie-jar.txt \
--header 'Content-Type: text/xml' \
--request POST https://testserver:1234/v1/secondarylogin \
--data '<?xml version="1.0" encoding="UTF-8"?>
<p:secondaryloginrequest xmlns:p="http://www.ericsson.com/em/am/co/authentication/v1_0/">
<credential>
<secret>6673</secret>
<type>otp</type>
</credential>
<channelinformation>COMVIVAAGENTAPP</channelinformation>
</p:secondaryloginrequest>'
**HTTP/1.1 200 OK**
Date: Wed, 02 Mar 2022 10:52:01 GMT
Content-Type: text/xml;charset=utf-8
Date: Wed, 02 Mar 2022 10:52:02 GMT
Set-Cookie: sessionid=default0c07b834d30644e9b30a9bfced82e6f2
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 0
一个非常简单的Bash脚本(失败的一个):
sh sectest.sh6673
#!/usr/bin/bash
curl -ki \
--cookie cookie-jar.txt \
--header 'Content-Type: text/xml' \
--request POST https://ugtestpo:8446/v1/secondarylogin \
--data '<?xml version="1.0" encoding="UTF-8"?>
<p:secondaryloginrequest xmlns:p="http://www.ericsson.com/em/am/co/authentication/v1_0/">
<credential>
<secret>""</secret>
<type>otp</type>
</credential>
<channelinformation>COMVIVAAGENTAPP</channelinformation>
</p:secondaryloginrequest>'
HTTP/1.1 401 Unauthorized
Date: Wed, 02 Mar 2022 10:47:53 GMT
Content-Type: text/xml;charset=utf-8
Content-Length: 188
我无法通过 paramatically 传递我的秘密值。
正在将我的评论转换为答案,以便未来的访问者可以轻松找到解决方案。
以下内容应该适合您使用允许 </code> 展开的适当引用:</p>
<pre><code>curl -ki \
--cookie cookie-jar.txt \
--header 'Content-Type: text/xml' \
--request POST https://ugtestpo:8446/v1/secondarylogin \
--data '<?xml version="1.0" encoding="UTF-8"?>
<p:secondaryloginrequest xmlns:p="http://www.ericsson.com/em/am/co/authentication/v1_0/">
<credential>
<secret>'""'</secret>
<type>otp</type>
</credential>
<channelinformation>COMVIVAAGENTAPP</channelinformation>
</p:secondaryloginrequest>'
为了可读性,我将 xml 分配给一个变量:heredocs 有助于避免引用地狱。
#!/usr/bin/bash
payload=$(cat <<END_XML
<?xml version="1.0" encoding="UTF-8"?>
<p:secondaryloginrequest xmlns:p="http://www.ericsson.com/em/am/co/authentication/v1_0/">
<credential>
<secret></secret>
<type>otp</type>
</credential>
<channelinformation>COMVIVAAGENTAPP</channelinformation>
</p:secondaryloginrequest>
END_XML
)
curl -ki \
--cookie cookie-jar.txt \
--header 'Content-Type: text/xml' \
--request POST \
--data "$payload" \
https://ugtestpo:8446/v1/secondarylogin
相同的 curl 命令不适用于 bash 脚本。 谁能请
控制台尝试(成功一次):
curl -ki \
--cookie cookie-jar.txt \
--header 'Content-Type: text/xml' \
--request POST https://testserver:1234/v1/secondarylogin \
--data '<?xml version="1.0" encoding="UTF-8"?>
<p:secondaryloginrequest xmlns:p="http://www.ericsson.com/em/am/co/authentication/v1_0/">
<credential>
<secret>6673</secret>
<type>otp</type>
</credential>
<channelinformation>COMVIVAAGENTAPP</channelinformation>
</p:secondaryloginrequest>'
**HTTP/1.1 200 OK**
Date: Wed, 02 Mar 2022 10:52:01 GMT
Content-Type: text/xml;charset=utf-8
Date: Wed, 02 Mar 2022 10:52:02 GMT
Set-Cookie: sessionid=default0c07b834d30644e9b30a9bfced82e6f2
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 0
一个非常简单的Bash脚本(失败的一个):
sh sectest.sh6673
#!/usr/bin/bash
curl -ki \
--cookie cookie-jar.txt \
--header 'Content-Type: text/xml' \
--request POST https://ugtestpo:8446/v1/secondarylogin \
--data '<?xml version="1.0" encoding="UTF-8"?>
<p:secondaryloginrequest xmlns:p="http://www.ericsson.com/em/am/co/authentication/v1_0/">
<credential>
<secret>""</secret>
<type>otp</type>
</credential>
<channelinformation>COMVIVAAGENTAPP</channelinformation>
</p:secondaryloginrequest>'
HTTP/1.1 401 Unauthorized
Date: Wed, 02 Mar 2022 10:47:53 GMT
Content-Type: text/xml;charset=utf-8
Content-Length: 188
我无法通过 paramatically 传递我的秘密值。
正在将我的评论转换为答案,以便未来的访问者可以轻松找到解决方案。
以下内容应该适合您使用允许 </code> 展开的适当引用:</p>
<pre><code>curl -ki \
--cookie cookie-jar.txt \
--header 'Content-Type: text/xml' \
--request POST https://ugtestpo:8446/v1/secondarylogin \
--data '<?xml version="1.0" encoding="UTF-8"?>
<p:secondaryloginrequest xmlns:p="http://www.ericsson.com/em/am/co/authentication/v1_0/">
<credential>
<secret>'""'</secret>
<type>otp</type>
</credential>
<channelinformation>COMVIVAAGENTAPP</channelinformation>
</p:secondaryloginrequest>'
为了可读性,我将 xml 分配给一个变量:heredocs 有助于避免引用地狱。
#!/usr/bin/bash
payload=$(cat <<END_XML
<?xml version="1.0" encoding="UTF-8"?>
<p:secondaryloginrequest xmlns:p="http://www.ericsson.com/em/am/co/authentication/v1_0/">
<credential>
<secret></secret>
<type>otp</type>
</credential>
<channelinformation>COMVIVAAGENTAPP</channelinformation>
</p:secondaryloginrequest>
END_XML
)
curl -ki \
--cookie cookie-jar.txt \
--header 'Content-Type: text/xml' \
--request POST \
--data "$payload" \
https://ugtestpo:8446/v1/secondarylogin