HttpUtil.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: bingone
  5. * Date: 16/1/19
  6. * Time: 下午3:39
  7. */
  8. require_once('Result.php');
  9. class HttpUtil
  10. {
  11. public static function PostCURL($url,$post_data){
  12. $ch = curl_init();
  13. /* 设置验证方式 */
  14. curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept:text/plain;charset=utf-8', 'Content-Type:application/x-www-form-urlencoded','charset=utf-8'));
  15. /* 设置返回结果为流 */
  16. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  17. /* 设置超时时间*/
  18. curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  19. /* 设置通信方式 */
  20. curl_setopt($ch, CURLOPT_POST, 1);
  21. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  22. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  23. curl_setopt ($ch, CURLOPT_URL, $url);
  24. curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
  25. $retry=0;
  26. // 若执行失败则重试
  27. do{
  28. $output = curl_exec($ch);
  29. $retry++;
  30. // echo $retry."\n";
  31. }while((curl_errno($ch) !== 0) && $retry<$GLOBALS['YUNPIAN_CONFIG']['RETRY_TIMES']);
  32. if (curl_errno($ch) !== 0) {
  33. $r = new Result(null, $post_data, null,curl_error($ch));
  34. curl_close($ch);
  35. return $r;
  36. }
  37. $output = trim($output, "\xEF\xBB\xBF");
  38. $statusCode = curl_getinfo($ch,CURLINFO_HTTP_CODE);
  39. $ret = new Result($statusCode,$post_data,json_decode($output,true),null);
  40. curl_close($ch);
  41. return $ret;
  42. }
  43. }