Http 是否可以对同一个curl命令使用`--data urlencode`和`--data binary`选项?

Http 是否可以对同一个curl命令使用`--data urlencode`和`--data binary`选项?,http,curl,request,http-put,Http,Curl,Request,Http Put,我正在使用并且希望通过发送--data urlencode字符串和--data binaryJSON文件内容来执行HTTP PUT请求。是否可以在相同的curl命令中执行此操作 我尝试了以下方法 curl www.website.org --request PUT -H Content-Type: application/json --data-urlencode "key=sample_string" --data-binary @sample_file.json 但它似乎没有像预期的那样工

我正在使用并且希望通过发送
--data urlencode
字符串和
--data binary
JSON文件内容来执行HTTP PUT请求。是否可以在相同的
curl
命令中执行此操作

我尝试了以下方法

curl www.website.org --request PUT -H Content-Type: application/json --data-urlencode "key=sample_string" --data-binary @sample_file.json

但它似乎没有像预期的那样工作:
key=sample\u string
sample\u file.json
内容根本不发送

  • 您的curl请求缺少标题的双引号。它应该是:
  • 您的内容类型是application/json,我希望它不是“二进制的”,所以您应该使用适当的类型
  • 在任何情况下,您都应该能够使用简单的php脚本找到提交的值,如下所示:

    $putfp = fopen('php://input', 'r');
    $putdata = '';
    while($data = fread($putfp, 1024))
        $putdata .= $data;
    fclose($putfp);
    
    var_dump($putdata);
    
    echo "---CONTENT_TYPE---\n";
    var_dump($_SERVER['CONTENT_TYPE']);
    
    $putfp = fopen('php://input', 'r');
    $putdata = '';
    while($data = fread($putfp, 1024))
        $putdata .= $data;
    fclose($putfp);
    
    var_dump($putdata);
    
    echo "---CONTENT_TYPE---\n";
    var_dump($_SERVER['CONTENT_TYPE']);