加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP cURL Content-Length和Content-Type错误

发布时间:2020-12-13 17:34:16 所属栏目:PHP教程 来源:网络整理
导读:我试图通过 PHP cURL登录到一个网站,我只收到“错误请求”的响应. 我使用hosts文件播放,并将其设置到我的服务器,以检查我的浏览器发送的请求标头,并将其与cURL发送的请求标头进行比较. 一切都是平等的,除了: 浏览器: Content-Type: application/x-www-form
我试图通过 PHP cURL登录到一个网站,我只收到“错误请求”的响应.

我使用hosts文件播放,并将其设置到我的服务器,以检查我的浏览器发送的请求标头,并将其与cURL发送的请求标头进行比较.

一切都是平等的,除了:

浏览器:

Content-Type: application/x-www-form-urlencoded
Content-Length: 51

PHP cURL:

Content-Length: 51,359
Content-Type: application/x-www-form-urlencoded; boundary=----------------------------5a377b7e6ba7

我已经用这个命令设置了这个值,但它仍然发送错误的头文件:

curl_setopt($this->hCurl,CURLOPT_HTTPHEADER,array(
    'Expect:','Content-Type: application/x-www-form-urlencoded','Content-Length: 51' 
));
你不必自己设置内容长度.如果您使用cURL发送HTTP POST,则会为您计算内容长度.

如果将CURLOPT_POSTFIELDS值设置为数组,它将自动将请求作为multipart / form-data提交,并使用边界.如果你传递一个字符串,它将使用application / x-www-form-urlencoded,所以确保将一个urlencoded字符串传递给CURLOPT_POSTFIELDS,而不是一个数组,因为你想要形式urlencoded.

你需要这样做:

$data = 'name=' . urlencode($value) . '&name2=' . urlencode($value2);
curl_setopt($this->hCurl,CURLOPT_POSTFIELDS,$data);

// NOT

$dataArray = array('name' => 'value','name2' => 'value2');
curl_setopt($this->hCurl,$dataArray);

在这两种情况下,您不需要设置内容长度,但您必须使用第一种方法来获取表单上的application / x-www-form-urlencoded encoding.

如果没有帮助,请发布与设置卷曲请求相关的所有代码(所有选项和您传递给它的数据),这有助于解决问题.

编辑:

添加的是我想出的一个例子(我登录失败).

<?php

$URL_HOME  = 'http://ilocalis.com/';
$LOGIN_URL = 'https://ilocalis.com/login.php';

$ch = curl_init($URL_HOME);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);

$home = curl_exec($ch);

//echo $home;

$post = array('username' => 'drew','password' => 'testing 123');
$query = http_build_query($post);

curl_setopt($ch,CURLOPT_URL,$LOGIN_URL);
curl_setopt($ch,CURLOPT_POST,$query);

$login = curl_exec($ch);

echo $login;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读