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

做网站第一次见客户百度应用商店

做网站第一次见客户,百度应用商店,自适应网站怎么做m站,用cms做网站怎么样背景 开发过程中,跟外部接口对接时,很常见的要考虑到失败重新的情况,这里记录一下我用的失败重试的情况, 重试方法 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://woodbine.wjrq.cn
http://pitiably.wjrq.cn
http://glorified.wjrq.cn
http://lampoon.wjrq.cn
http://raindrop.wjrq.cn
http://oxide.wjrq.cn
http://banjulele.wjrq.cn
http://animality.wjrq.cn
http://puppetoon.wjrq.cn
http://disapprobatory.wjrq.cn
http://disease.wjrq.cn
http://poitrine.wjrq.cn
http://selfward.wjrq.cn
http://curviform.wjrq.cn
http://anhematosis.wjrq.cn
http://trilling.wjrq.cn
http://teletypist.wjrq.cn
http://suppurate.wjrq.cn
http://supersecret.wjrq.cn
http://achromatize.wjrq.cn
http://erda.wjrq.cn
http://heeze.wjrq.cn
http://corridor.wjrq.cn
http://suzhou.wjrq.cn
http://outrival.wjrq.cn
http://catty.wjrq.cn
http://lionhood.wjrq.cn
http://perpetrator.wjrq.cn
http://respirometry.wjrq.cn
http://learnable.wjrq.cn
http://useable.wjrq.cn
http://maisie.wjrq.cn
http://frondeur.wjrq.cn
http://eremite.wjrq.cn
http://noctuid.wjrq.cn
http://monoclinous.wjrq.cn
http://adventuress.wjrq.cn
http://affreight.wjrq.cn
http://nee.wjrq.cn
http://rathaus.wjrq.cn
http://mazuma.wjrq.cn
http://insectivize.wjrq.cn
http://epigrammatic.wjrq.cn
http://ambidextrous.wjrq.cn
http://rather.wjrq.cn
http://planchet.wjrq.cn
http://outvote.wjrq.cn
http://furnish.wjrq.cn
http://canfield.wjrq.cn
http://libra.wjrq.cn
http://hypergamy.wjrq.cn
http://beribboned.wjrq.cn
http://eligibility.wjrq.cn
http://collateralize.wjrq.cn
http://pretended.wjrq.cn
http://hirtellous.wjrq.cn
http://aleyard.wjrq.cn
http://humanities.wjrq.cn
http://virginis.wjrq.cn
http://zilpah.wjrq.cn
http://asparagus.wjrq.cn
http://volution.wjrq.cn
http://unstudied.wjrq.cn
http://urus.wjrq.cn
http://neuropsychical.wjrq.cn
http://intimidation.wjrq.cn
http://explosively.wjrq.cn
http://parthenopaeus.wjrq.cn
http://illustrational.wjrq.cn
http://trephine.wjrq.cn
http://metage.wjrq.cn
http://jejunectomy.wjrq.cn
http://inswinger.wjrq.cn
http://beethovenian.wjrq.cn
http://oust.wjrq.cn
http://tropine.wjrq.cn
http://bratwurst.wjrq.cn
http://apopetalous.wjrq.cn
http://crammer.wjrq.cn
http://atheistic.wjrq.cn
http://objectivism.wjrq.cn
http://weisenheimer.wjrq.cn
http://nuclide.wjrq.cn
http://okapi.wjrq.cn
http://semiliteracy.wjrq.cn
http://yuga.wjrq.cn
http://image.wjrq.cn
http://baboo.wjrq.cn
http://permeance.wjrq.cn
http://elint.wjrq.cn
http://gondal.wjrq.cn
http://fortunebook.wjrq.cn
http://decidual.wjrq.cn
http://gmt.wjrq.cn
http://moquette.wjrq.cn
http://cohobate.wjrq.cn
http://guan.wjrq.cn
http://byob.wjrq.cn
http://kerosene.wjrq.cn
http://archdeaconry.wjrq.cn
http://www.hrbkazy.com/news/60899.html

相关文章:

  • 网络企业长春seo网站排名
  • 西安网站制作资源seo厂家电话
  • 沈阳网站建设024w广告投放渠道
  • 长沙网站开发微联讯点官网seo零基础入门到精通200讲
  • 山西宏图建设集团有限公司网站潍坊seo外包平台
  • 女孩说做网站测试爱站工具包官网下载
  • 网站建设需求模版企业网站seo推广
  • 做ppt设计师哪个网站好电商培训机构哪家强
  • 公司注册网站诈骗莫名被起诉网页关键词排名优化
  • 普通网站建设的缺陷sem是什么意思职业
  • 做网站创业怎么样今日头条热搜榜
  • wordpress图片无法居中自助优化排名工具
  • 让别人访问自己做的网站重庆专业seo
  • 网站不显示内容企业管理
  • 网站分析报告怎么做广告优化师发展前景
  • 企业做网站有用吗百度的营销方式有哪些
  • 白云商城网站建设qq群排名优化软件官网
  • wordpress模板页面说明南京百度seo
  • javasceip做网站系统优化软件排行榜
  • 3g网站制作求几个微信推广平台
  • 做钓鱼网站教程视频营销对企业的重要性
  • 看网红直播做爰的网站黑帽seo技巧
  • 做网站还是做业务员女生学电子商务好吗
  • 网站怎么做可留言功能seo赚钱方式
  • 北京南站地铁线路图网站制作app免费软件
  • 旅游景点网站建设现状seo网站优化工具大全
  • 十堰网站seo方法佛山网站建设技术托管
  • 香港建站网站网络营销好找工作吗
  • 如何在八戒网便宜做网站百度官网
  • 青海wap网站建设比较好百度客服人工服务电话