【问题标题】:Post/Get Request not sending parameters发布/获取请求不发送参数
【发布时间】:2014-08-17 00:32:04
【问题描述】:

我正在尝试通过发布请求将用户名和密码发送到我的本地主机上的登录页面。 我正在使用下面的代码生成请求并将其发送到页面

$url='http://localhost/index.php';
$fields = array('username' => 'admin', 'password' => '1234');
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($fields));
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($ch);
curl_close($ch);
echo $result;

编辑
print_r(curl_getinfo($ch));打印此信息
数组 ( [url] => http://www.url.com/index.php [content_type] => text/html [http_code] => 200 [header_size] => 380 [request_size] => 182 [filetime] => -1 [ssl_verify_result] => 0 [ redirect_count] => 0 [total_time] => 2.234 [namelookup_time] => 0.063 [connect_time] => 0.063 [pretransfer_time] => 0.063 [size_upload] => 28 [size_download] => 2322 [speed_download] => 1039 [speed_upload] => 12 [download_content_length] => 2322 [upload_content_length] => 28 [starttransfer_time] => 2.234 [redirect_time] => 0 [certinfo] => Array () [primary_ip] => ::1 [primary_port] => 80 [ local_ip] => ::1 [local_port] => 54953 [redirect_url] => ) Array ( [Host] => localhost [Accept] => / [Content-Length] => 28 [Content -Type] => application/x-www-form-urlencoded )

请求已生成,我收到 HTTP 200,OK 状态作为响应。该请求没有发送任何参数,作为响应,我收到了正常的登录表单,而不是在登录屏幕之后。

任何人请告诉我上面的代码有什么问题。

我已尝试使用 stream_context_create 和 file_get_contents 进行相同的操作,但在两种情况下(登录表单而不是登录后屏幕)都会生成相同的响应,就像它们正在接收任何参数一样。

【问题讨论】:

  • 将 bool 放入 CURLOPT_POST 选项
  • curl_close之前添加这一行:print_r(curl_getinfo($ch));
  • @Phantom,它产生相同的结果。
  • @hindmost,试图通过此选项查看信息,但它没有提供任何有用的信息。如果你喜欢我可以粘贴生成的结果。
  • 如果您想获得帮助,请提供任何详细信息符合您的利益

标签: php post curl request


【解决方案1】:

1) CURLOPT_POST 选项期望 boolean 类型的值。但是,这在您的代码中并不重要,因为如果 $fields 非空,count($fields) 将被转换为 true

2) 不要手动构建POST 数据,而是使用http_build_query()。您也可以将array 的数据传递给CURLOPT_POSTFIELDS 选项,并自动将其转换为string

3) 您不需要设置 Content-Type 标头,因为 cURL 会为 POST 请求自动设置它。

【讨论】:

  • @user3778430 您必须根据所做的更改更新问题中的代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-08
  • 2019-04-28
  • 1970-01-01
  • 1970-01-01
  • 2018-02-18
  • 1970-01-01
相关资源
最近更新 更多