我试图将请求正文传递给卷曲调用而且我被卡住了。
我在drupal工作流规则中我已经为需要将服务作为键值对调用的body参数定义了一个数据字段。$ data变量的转储看起来像......
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_POSTFIELDS
的格式?
答案 0 :(得分:1)
我宁愿使用数组,然后使用PHP http_build_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'];
答案 1 :(得分:0)
只需使用数组:
$arr = array('art1' => 'value1','art2' => 'value2');
curl_setopt($ch, CURLOPT_POSTFIELDS, $arr);