簡體   English   中英

如何在PHP中向HTTP請求添加Content-length

[英]How to add Content-length To http request in php

我想使用octoparse API。 當我想清除octoparse API中的數據時出現錯誤。

這是我的代碼

ini_set('max_execution_time', 300);
$url = 'https://dataapi.octoparse.com/api/task/RemoveDataByTaskId?taskId=<mytaskid>';

$options = array(
    'http' => array(
        'header'  => "Authorization: bearer <mykey>",
        'method'  => 'POST'
    )
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if ($result === FALSE) { 
echo 'error';
}    

var_dump($result);

我的結果

Warning: file_get_contents(https://dataapi.octoparse.com/api/task/RemoveDataByTaskId?taskId=<mytaskid>): failed to open stream: HTTP request failed! HTTP/1.1 411 Length Required

而且我嘗試添加Content-length但出現錯誤我的新代碼:

ini_set('max_execution_time', 300);
$url = 'https://dataapi.octoparse.com/api/task/RemoveDataByTaskId?taskId=<mytaskid>';

$a=strlen($url);
$options = array(
    'http' => array(
        'header'  => "Authorization: bearer <my key>",
        'method'  => 'POST',
        'header'  => sprintf('Content-Length: %d', $a)
    )
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if ($result === FALSE) { 
echo 'error';
}    

var_dump($result);

我的結果

Warning: file_get_contents(https://dataapi.octoparse.com/api/task/RemoveDataByTaskId?taskId=<mytaskid>): failed to open stream: HTTP request failed!

誰能知道如何解決我的問題。 謝謝。

您在HTTP中使用多個標頭。 如果您使用多個標題,請按照以下步驟進行

'header' => array(
            "Authorization: bearer <my key>",
            sprintf('Content-Length: %d', $a)
        ),

您也可以使用此代碼

$requestHeaders = array(
    'Content-type: application/x-www-form-urlencoded',
    'Authorization: bearer <my key>',
    sprintf('Content-Length: %d', strlen($url));
);
$options = array(
    'http' => array(
        'method' => 'POST',
        'header' => implode("\r\n", $requestHeaders),
    )
);

暫無
暫無

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

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