微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 发布请求,file_get_content不起作用

我正在尝试使用file_get_contents“发布”到网址并获取身份验证令牌.我遇到的问题是它返回一个错误.

消息: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为您生成代码.在邮递员中,您可以根据请求单击代码,甚至可以选择您想要的编码语言.像PHP一样使用cURL:

$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;
}

希望这会有所帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐