【问题标题】:Unable to POST a request to a server using CURL in BASH无法在 BASH 中使用 CURL 向服务器发布请求
【发布时间】:2019-11-06 06:07:17
【问题描述】:

我一直在尝试运行 BASH 脚本,该脚本将请求发布到 SMS 服务器,并在成功执行时在提到的手机号码上收到一条消息。脚本如下:

curl -k -X POST "http://192.168.10.3/u=admin&h=452ba065ebd1723598a51c7eca11d362&op=pv&to=1234567891&msg=Hello+to+all"

上面的脚本工作正常。手机号码 1234567891 上收到消息“Hello to all”。然而,这个号码在 URL 中是硬编码的。在实际场景中,手机号码将在变量中可用,SMS 将发送到该变量中可用的手机号码。

我试过这样的脚本:

mobile_number="1234567891"
curl -k -X POST "http://192.168.10.3/u=admin&h=452ba065ebd1723598a51c7eca11d362&op=pv&to=$mobile_number&msg=Message+From+world"

x="http://192.168.10.3/u=admin&h=452ba065ebd1723598a51c7eca11d362&op=pv&to="
x+="1234567891
x+=&msg=Hello+to+all"
curl -k -X POST $x

但是,我未能成功执行它们。如果有人可以帮助我了解语法,那将是非常有帮助的。

【问题讨论】:

  • 试试这个原理,bash 和 c++ 是不同的语言 :-): (我把它放在答案中以澄清评论中不正确的代码)...

标签: string bash curl post get


【解决方案1】:

试试这个原理,bash 和 c++ 是不同的语言 :-):

#!/bin/bash
to="1234567891"
msg="Hello+to+all"
u="admin"
hash="452ba065ebd1723598a51c7eca11d362"
op="pv"
ip="192.168.10.3"
url="http://${ip}/u=admin&h=${hash}&op=${op}&to=${to}&msg=${msg}"

echo ${url}

比:curl -k -X POST $url should work fine.

【讨论】:

  • 感谢您的回复。但是我在使用上述方法时收到以下错误 ERROR: curl: (3) Illegal characters found in url
  • 将 -v 添加到 curl 参数。解决问题会更加冗长。我在我的 debian 上对其进行了测试,它似乎工作正常。
猜你喜欢
  • 1970-01-01
  • 2016-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多