Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Rest请求主体到CULLOPT_POSTFIELDS_Php_Postman - Fatal编程技术网

Php Rest请求主体到CULLOPT_POSTFIELDS

Php Rest请求主体到CULLOPT_POSTFIELDS,php,postman,Php,Postman,我试图将请求主体传递到curl调用中,但我被卡住了 我在drupal工作流规则中定义了一个数据字段,用于作为键值对调用服务所需的主体参数 artifact1=valueXYZ artifact2=value123 CURLOPT_POSTFIELDS的我的邮递员输出是一个字符串 i.e.(------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\artifact1\r\n\r\nvalu

我试图将请求主体传递到curl调用中,但我被卡住了

我在drupal工作流规则中定义了一个数据字段,用于作为键值对调用服务所需的主体参数

artifact1=valueXYZ
artifact2=value123
CURLOPT_POSTFIELDS
的我的邮递员输出是一个字符串

  i.e.(------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\artifact1\r\n\r\nvalueXYZ\r\n)
在PHP中,如何将
artifact1=valueXYZ
转换为
CURLOPT\u POSTFIELDS
的格式?

只需使用一个数组:

$arr = array('art1' => 'value1','art2' => 'value2');
curl_setopt($ch, CURLOPT_POSTFIELDS, $arr); 

我宁愿使用数组,然后使用PHP
http\u build\u query()
函数:

      $array_values['artifact1'] = "valueXYZ";
      $array_values['artifact2'] = "value123";
      $fields = http_build_query($array_values);
      $curl = curl_init();
      curl_setopt_array($curl, array(
          CURLOPT_URL => $url,
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => "",
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 30,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => "POST",
          CURLOPT_POSTFIELDS => $fields,
          CURLOPT_HTTPHEADER => array(
            "cache-control: no-cache"
          ),
      ));

      $response = curl_exec($curl);
      $err = curl_error($curl);

      curl_close($curl);
然后您会收到如下值:

$artifact1 = $_POST['artifact1'];
$artifact2 = $_POST['artifact2'];