簡體   English   中英

轉換為 PHP REST CURL POST

[英]Convert to PHP REST CURL POST

我們如何將此代碼轉換為 PHP REST CURL 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);

在這個例子中,我發送了一個標題和發布字段。

$headers => 我把一個令牌值放在一個數組中,只是為了展示你如何發送一個值。

$data => 我使用了一個帶有一些虛數值的數組。

在 curl 我在這里使用了這個變量: curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string ); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers );

CURLOPT_POSTFIELDS -> 要在 HTTP“POST”操作中發布的完整數據。 要發布文件,請在文件名前加上 @ 並使用完整路徑。 文件類型可以通過在文件名后面加上“;type=mimetype”格式的類型來明確指定。 此參數可以作為 urlencoded 字符串(如 'para1=val1&para2=val2&...')或作為以字段名稱作為鍵和字段數據作為值的數組傳遞。 如果值為數組,則 Content-Type 標頭將設置為 multipart/form-data。 從 PHP 5.2.0 開始,如果文件以 @ 前綴傳遞給此選項,則該值必須是一個數組。

如果您想了解有關 curl_setopt 的更多信息,我建議您使用此鏈接: 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']));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM