我们怎样才能把这段代码转换到PHP REST卷曲POST?
POST https://apis.live.net/v5.0/me/skydrive/files?access_token=ACCESS_TOKEN
Content-Type: multipart/form-data; boundary=A300x
--A300x
Content-Disposition: form-data; name="file"; filename="HelloWorld.txt"
Content-Type: application/octet-stream
Hello, World!
--A300x--
$url = 'POST https://apis.live.net/v5.0/me/skydrive/files';
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POSTFIELDS, array('access_token' => TOKEN, 'name' => 'file', 'filename' => "@HelloWorld.txt"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
编辑:没有阅读所有岗位的,固定的。
我希望这是有帮助的:
<?php
$headers = array('token: pacexpressx1x2x3j' );
$data = array(
"STATUS" => "insert" ,
"NAME" => utf8_encode("Test integration 10"),
"COD_AREA" => "4",
"DESC_AREA_" => utf8_encode("info/IT"),
"JOB" => utf8_encode("TEST job"),
"COMPANY" => "4",
"DESC_COMPANY" => utf8_encode("XPTO1"),
"file" => '@/home/user/test.png');
$url = 'your_link';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$output = curl_exec($ch);
echo($output) . PHP_EOL;
curl_close($ch);
在这个例子中我发送一个报头,和后场。
$头=>我一个数组中放一个令牌值,只是为了显示你怎么能发送的值。
$数据=>我使用的阵列的一些想象值。
在我使用的卷曲这variebles这里:curl_setopt($ CH,CURLOPT_POSTFIELDS,$ data_string); curl_setopt($ CH,CURLOPT_HTTPHEADER,$头 );
CURLOPT_POSTFIELDS - >完整的数据张贴在HTTP“POST”操作。 要发布一个文件,在前面加上@文件名,并使用完整路径。 文件类型可以按照与所述格式类型的文件名被明确指定“;类型= mime类型”。 此参数可以像“PARA1 = VAL1&PARA2 = val2的&...”一个urlencoded的字符串被传递或作为具有字段名作为值作为密钥和字段数据的数组。 如果值是一个阵列,所述Content-Type头将被设置为multipart / form-数据。 由于PHP 5.2.0的,值必须是一个数组,如果文件传递给这个选项与@前缀。
如果你想了解更多关于curl_setopt,我sugest你这个链接: http://php.net/manual/pt_BR/function.curl-setopt.php
要查看您发送和接收您发送,您可以波纹管使用该代码的文件:
echo 'Here is some more debugging info:';
echo "\n<hr />\n";
print_r($_FILES);
echo "\n<hr />\n";
print_r($_POST);
print "</pr" . "e>\n";
echo "\n<hr />\n";
// here you will record the file in your server... you can choose a directory if you want
file_put_contents($_FILES['file']['name'],file_get_contents($_FILES['file']['tmp_name']));