为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Curl 发送空白接受标头 - PHP

如何使用 Curl 发送空白接受标头 - PHP

PHP
POPMUISE 2021-06-30 18:03:32
我已经看到了几个相关的问题,但不幸的是,没有一个推荐的解决方案可以解决我的问题。我正在尝试使用 PHP curl 发送一个空白的 Accept 标头:PHP 版本:7.3 Disto:Debian    /**     * @param string $method     * @param string $url     * @param string $body     * @param array $headers     *     * @return Response     */    public function execute(string $method, string $url, string $body = '', array $headers = []): Response    {        $curlHeaders = [];        $isAcceptHeaderPresent = false;        $isExpectHeaderPresent = false;        $curl = \curl_init();        $response = new Response();        foreach ($headers as $name => $value) {            $curlHeaders[] = $value === '' ? "{$name};" : "{$name}: $value";            $name = \strtolower($name);            if ($name === 'accept') {                $isAcceptHeaderPresent = true;            }            if ($name === 'expect') {                $isAcceptHeaderPresent = true;            }        }        if ($isAcceptHeaderPresent === false) {            $curlHeaders[] = 'Accept: ';        }        if ($isExpectHeaderPresent === false) {            $curlHeaders[] = 'Expect: ';        }        $options = [            CURLOPT_URL => \str_replace(' ', '%20', $url),            CURLOPT_RETURNTRANSFER => true,            CURLOPT_HEADER => false,            CURLOPT_FOLLOWLOCATION => true,            CURLOPT_AUTOREFERER => true,            CURLOPT_CONNECTTIMEOUT => 120,            CURLOPT_TIMEOUT => 120,            CURLOPT_MAXREDIRS => 10,            CURLOPT_SSL_VERIFYPEER => false,            CURLOPT_POSTFIELDS => $body,            CURLOPT_HEADERFUNCTION => [$response, 'headerWrite'],            CURLOPT_WRITEFUNCTION => [$response, 'bodyWrite'],            CURLOPT_FILE => $response->getBodyAsResouce(),            CURLOPT_HTTPHEADER => $curlHeaders,        ];        如果Accept:提供,则不会以任何方式发送 Accept 标头。而Accept;这样做,空白值也将与*/*值一起发送:"accept":"*/*,有没有办法按Accept:原样发送标题?我想知道这个机制在最近几个 PHP 和 curl 扩展版本中是否已经改变,因为没有任何建议按预期工作。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 124 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信