gpt4 book ai didi

php - 使用 file_get_content 的发布请求不起作用

转载 作者:可可西里 更新时间:2023-10-31 23:28:03 24 4
gpt4 key购买 nike

我正在尝试使用 file_get_contents 来“发布”到一个 url 并获取授权 token 。我遇到的问题是它返回错误。

消息:file_get_contents(something):无法打开流:HTTP 请求失败! HTTP/1.1 411 需要长度。

我不确定是什么原因造成的,但需要帮助。这是函数。

public function ForToken(){
$username = 'gettoken';
$password = 'something';
$url = 'https://something.com';
$context = stream_context_create(array (
'http' => array (
'header' => 'Authorization: Basic ' . base64_encode("$username:$password"),
'method' => 'POST'
)
));

$token = file_get_contents($url, false, $context);
if(token){
var_dump($token);
}else{
return $resultArray['result'] = 'getting token failed';
}
}

我用 POSTMAN 试过了,它可以工作,所以我遇到的唯一问题是为什么它不能与 file_get_contents 一起工作。

最佳答案

无法命令所以我会这样做。如果您使用 Postman,为什么不让 Postman 为您生成代码。在 postman 中,您可以根据请求单击代码,甚至可以选择您想要的编码语言。就像带有 cURL 的 PHP:

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "http://somthing.com/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => array(
"password: somthing",
"username: gettoken"
),
));

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

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}

希望这会有所帮助!

关于php - 使用 file_get_content 的发布请求不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41586474/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com