【问题标题】:How to POST URL in data of a curl request如何在 curl 请求的数据中发布 URL
【发布时间】:2013-08-14 18:54:30
【问题描述】:

我正在尝试使用curlpathfileName 发布两个参数:

curl --request POST 'http://localhost/Service' --data "path='/xyz/pqr/test/'&fileName='1.doc'"

我知道这有问题。 我必须使用 URLEncode 之类的东西。我尝试了很多东西仍然没有运气。

请举例说明如何在 curl 请求的数据中发布 url。

【问题讨论】:

    标签: linux web-services bash curl http-post


    【解决方案1】:

    也许您不必包含单引号:

    curl --request POST 'http://localhost/Service' --data "path=/xyz/pqr/test/&fileName=1.doc"
    

    更新:阅读 curl 的手册,您实际上可以用两个 --data 分隔两个字段:

    curl --request POST 'http://localhost/Service' --data "path=/xyz/pqr/test/" --data "fileName=1.doc"
    

    你也可以试试 --data-binary:

    curl --request POST 'http://localhost/Service' --data-binary "path=/xyz/pqr/test/" --data-binary "fileName=1.doc"
    

    还有--data-urlencode:

    curl --request POST 'http://localhost/Service' --data-urlencode "path=/xyz/pqr/test/" --data-urlencode "fileName=1.doc"
    

    【讨论】:

    • 文件名未发布后
    • data-urlencode 有多个参数(用户名,密码) @konsolebox 怎么样?
    【解决方案2】:

    我认为没有必要在变量周围使用半引号,试试:

    curl -XPOST 'http://localhost/Service' -d "path=%2fxyz%2fpqr%2ftest%2f&fileName=1.doc"
    

    %2f/ 的转义码。

    http://www.december.com/html/spec/esccodes.html

    另外,您需要指定端口吗? (只是检查:))

    【讨论】:

    • 文件名未发布后
    猜你喜欢
    • 1970-01-01
    • 2015-12-06
    • 2022-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    • 2016-04-15
    • 1970-01-01
    相关资源
    最近更新 更多