【问题标题】:PHP Request failed on SSLSSL 上的 PHP 请求失败
【发布时间】:2019-11-28 15:43:23
【问题描述】:

您好,我想从 url 获取一些数据。我已经尝试通过控制台、邮递员、浏览器发出请求——所有这些都正常工作。但是,如果我使用 php(guzzle,symfony http 客户端)发出请求,它会在 SSL 上失败。有人知道如何通过 curl 从this url 获得响应吗?谢谢!

【问题讨论】:

  • 失败的代码在哪里?您能否将所有需要帮助的相关代码添加到您的问题中或冒着关闭问题的风险。
  • 请正确描述您的问题
  • 好吧,我找到了 3 个可以提出请求的网站。前两个不工作的地方在这里:reqbin.comapirequest.io,第三个工作的地方在这里apitester.com。我可能有一些类似的问题。

标签: php curl httprequest


【解决方案1】:

请尝试以下代码(这对我有用):

<?php

function curl( $url, $data = array(), $headers = array(), $ssl_required = false ) {

 $handle = curl_init( $url );

 curl_setopt( $handle, CURLOPT_RETURNTRANSFER, true );

 // Set post data if exist
 if ( !empty( $data ) ) {

   curl_setopt( $handle, CURLOPT_POST, true );
   curl_setopt( $handle, CURLOPT_POSTFIELDS, $data );

 }

 // Set custom headers if exist
 if ( count( $headers ) )
   curl_setopt( $handle, CURLOPT_HTTPHEADER, $headers );

 // If url was ssl, need to true
 if ( $ssl_required )
   curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);

 $output = curl_exec( $handle );

 curl_close( $handle );

 return $output;

}

echo curl("https://www.skroutz.gr/c/900/fakoi-epafhs.json");

【讨论】:

  • 这很有趣,因为我连续 5 次没有工作。然后我工作了 2 次,现在它不再工作了。它返回空字符串。
  • @Jack 我已经测试了大约10次,获取数据没有任何问题。你能告诉我你把这个请求发到哪里了吗?也许您的连接不可靠...
猜你喜欢
  • 1970-01-01
  • 2011-04-22
  • 2019-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-29
  • 2023-03-17
  • 1970-01-01
相关资源
最近更新 更多