小说推广数据系统

HttpService.php 3.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. namespace App\Services;
  3. use App\Log;
  4. class HttpService
  5. {
  6. /*
  7. * 封装HTTP请求 -- POST
  8. * */
  9. public static function httpPost($url, $data = null,$json = FALSE, $headers = null){
  10. $curl = curl_init();
  11. curl_setopt($curl, CURLOPT_URL, $url);
  12. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
  13. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
  14. if (!empty($data)){
  15. //设置请求为POST
  16. curl_setopt($curl, CURLOPT_POST, 1);
  17. curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
  18. if($json){
  19. $header = array(
  20. 'Content-Type: application/json; charset=utf-8',
  21. 'Content-Length: ' . strlen($data)
  22. );
  23. if(!empty($headers)) {
  24. $header = array_merge($header, $headers);
  25. }
  26. curl_setopt($curl, CURLOPT_HEADER, 0);
  27. curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
  28. }
  29. }
  30. //设置是否将响应结果存入变量,1是存入,0是直接输出
  31. curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
  32. //然后将响应结果存入变量
  33. $output = curl_exec($curl);
  34. //关闭这个curl会话资源
  35. curl_close($curl);
  36. return $output;
  37. }
  38. /*
  39. * 封装HTTP请求 -- GET
  40. * */
  41. public static function httpGet($url, $headers = null){
  42. $curl = curl_init(); // 启动一个CURL会话
  43. curl_setopt($curl, CURLOPT_URL, $url);
  44. curl_setopt($curl, CURLOPT_HEADER, 0);
  45. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  46. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
  47. //curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在
  48. if ($headers) {
  49. curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); // 设置请求的header
  50. }
  51. $output = curl_exec($curl); //返回api的json对象
  52. //关闭URL请求
  53. curl_close($curl);
  54. return $output; //返回json对象
  55. }
  56. /*
  57. * 封装HTTP请求 -- 通过图片全路径上传图片
  58. * */
  59. public static function httpUpload($url, $filePath, $type='', $title='', $introduction='')
  60. {
  61. $file_data = array("media" => new \CURLFile($filePath, '', $title));
  62. if($type == 'video') {
  63. $extra = [
  64. 'description' => urldecode(json_encode([
  65. 'title' => $title,
  66. 'introduction' => $introduction
  67. ], JSON_UNESCAPED_UNICODE))
  68. ];
  69. $file_data = array_merge($file_data, $extra);
  70. }
  71. $curl = curl_init();
  72. curl_setopt($curl , CURLOPT_URL , $url);
  73. curl_setopt($curl , CURLOPT_RETURNTRANSFER, 1);
  74. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
  75. curl_setopt($curl , CURLOPT_POST, 1);
  76. curl_setopt($curl , CURLOPT_POSTFIELDS, $file_data);
  77. $output = curl_exec($curl);
  78. if ($output === FALSE){
  79. echo 'cURL Error:'.curl_error($curl);
  80. }
  81. curl_close($curl);
  82. return $output;
  83. }
  84. }