当前位置: 首页 > news >正文

做网站第一次见客户百度发广告怎么发

做网站第一次见客户,百度发广告怎么发,北京市建设城乡建设委员会官方网站,贵州飞乐云毕节网站建设背景 开发过程中,跟外部接口对接时,很常见的要考虑到失败重新的情况,这里记录一下我用的失败重试的情况, 重试方法 1、使用 Laravel 的 HTTP 客户端和异常处理 结合异常处理和重试逻辑 use Illuminate\Support\Facades\Http;…

背景

开发过程中,跟外部接口对接时,很常见的要考虑到失败重新的情况,这里记录一下我用的失败重试的情况,

重试方法

1、使用 Laravel 的 HTTP 客户端和异常处理

结合异常处理和重试逻辑

use Illuminate\Support\Facades\Http;
use Illuminate\Http\Client\RequestException;try {$response = Http::get('http://example.com/api/endpoint');$response->throw();
} catch (RequestException $e) {// 可以根据异常类型或状态码决定是否重试if ($e->response && $e->response->status() >= 500) {// 重试逻辑,例如重新发送请求$response = Http::get('http://example.com/api/endpoint');}
}
2、Guzzle 及其重试中间件

文档地址:https://docs.guzzlephp.org/en/stable/quickstart.html#creating-a-client

Guzzle 是一个广泛使用的 HTTP 客户端,并且有相应的重试中间件可以实现请求失败的重试。

2.1安装扩展
composer require guzzlehttp/guzzle
2.2失败重试逻辑
use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Handler\CurlHandler;
use GuzzleHttp\Middleware;
use GuzzleHttp\Psr7\Response;class YourHttpClientClass {// 自定义的重试决策函数public static function retryDecider() {return function ($retries, $request, $response = null, $exception = null) {if ($retries >= 3) {return false;}if ($exception instanceof \GuzzleHttp\Exception\ConnectException) {return true;}if ($response) {// 如果请求有响应,这里根据自己的业务而定,是否继续重试$res_content = $response->getBody()->getContents();$res = json_decode($res_content, true);if (isset($res['error'])) { // 如果不存在status ,更新access_token,再次请求info('接口请求结果: '. json_encode($res) . '需要刷新access_token重新请求');self::getProAccessToken($refresh = true);return true;}}return false;};}// 自定义的重试延迟函数public static function retryDelay() {return function ($numberOfRetries) {return 1000 * $numberOfRetries; // 延迟 1 秒,重试次数越多延迟越长};}public function createClient() {// 创建处理栈并使用 CurlHandler$handlerStack = HandlerStack::create(new CurlHandler());// 创建 mapResponse 中间件$mapResponse = Middleware::mapResponse(function (Response $response) {$response->getBody()->rewind();return $response;});// 创建重试中间件,指定决策者为 retryDecider(),指定重试延迟为 retryDelay()$handlerStack->push($mapResponse);// 创建重试中间件$handlerStack->push(Middleware::retry(self::retryDecider(), self::retryDelay()));// 创建 Guzzle 客户端$http_client = new Client(['handler' => $handlerStack,'connect_timeout' => 5,        // 连接超时 5 秒钟'read_timeout' => 20,           // 读取内容超时 20 秒钟'timeout' => 30,                // 总超时 30 秒钟'verify' => true,              // 检查 ssl'http_errors' => false,         // 暂时忽略 http 错误,但后续需检查状态码'force_ip_resolve' => 'v4',     // 强制使用 IPV4 解析地址'headers' => ['Ocp-Apim-Subscription-Key' => config('jpro.vpcx.api_key') ],]);if (strtolower($method) == 'get') {$options = ['query' =>  $data ];$res = $http_client->request('get', $api_url, $options)->getBody()->getContents();} elseif (strtolower($method) == 'post') {$res = $http_client->request('post', $api_url, ['form_params' =>  $data,])->getBody()->getContents();}return $res;}
}
http://www.mmbaike.com/news/90794.html

相关文章:

  • 手机app前端开发工具云seo
  • 设计师如何做自己的个人网站怎么推广
  • 最新国内新闻重大事件谷歌优化方法
  • 网站建设 预算长沙官网seo分析
  • 网站副标题怎么修改品牌运营管理公司
  • 网站备案转服务器外链网盘
  • 如何写代码做网站做网站推广的公司
  • 龙华做网站怎么样品牌推广外包公司
  • 狠狠做网站湖南seo推广服务
  • 长春seo网络优化招聘网东莞seo外包公司哪家好
  • 做奥迪汽车网站毕业论文汽车seo是什么意思
  • 给客户建完美网站快速网站seo效果
  • 如东建设局网站seo技术培训山东
  • 做传单网站不受限制的搜索引擎
  • 体检网站源码小红书网络营销策划方案
  • 做移动网站开发seo建站教程
  • 网站建设培训一般多少钱浙江企业seo推广
  • 网站建设的有什么需求免费网页制作网站
  • 主流的网页开发技术优化一下
  • 做网站培训湖南搜索引擎推广平台
  • 哪里有专业做网站百度热搜榜在哪里看
  • 中煤浙江基础建设有限公司网站可以直接打开网站的网页
  • 做网站需要什么书广州竞价托管
  • 做企业网站主题要自制吗百度信息
  • 山东济南市网站建设如何做网站推广
  • 某网站自己做中性笔关键词seo教程
  • 网店装修定制郑州seo建站
  • 恩施公司做网站如何查询百度收录情况
  • 外链建设给网站起的作用seo排名教程
  • 装修网站建设价格培训机构怎么找