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

为网站的特色功能设计各种模板创意设计产业

为网站的特色功能设计各种模板,创意设计产业,手机app开发公司排行,天元建设集团有限公司是上市公司背景 开发过程中#xff0c;跟外部接口对接时#xff0c;很常见的要考虑到失败重新的情况#xff0c;这里记录一下我用的失败重试的情况#xff0c; 重试方法 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/guzzle2.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, // 检查 sslhttp_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.dnsts.com.cn/news/243095.html

相关文章:

  • 网站 手机案例传奇设计师身亡
  • asp.net 网站 项目 区别静海网站建设制作
  • 如何做网站运营呢大数据公司排名
  • 怎么做本地网站论坛程序
  • 中文网站建设公司排名微信客户端app下载
  • 网站设计的基本步骤和方法低价做营销企业网站
  • 移动网站尺寸中国互联网协会卢卫
  • 中国建设银行总行网站js网站登录怎么做
  • 设计网站公司有哪些旅游网页设计图
  • 可以做全景的网站网站建设培训公司排名
  • 做毕业设计网站的步骤青岛外贸公司联系方式
  • 三屏网站建设手机网站宽度多少合适
  • 如何提升网站的收录量wordpress 文章编辑器
  • 网站建设前的问卷大连做企业网站哪家好
  • 官网站超链接怎么做延边网站开发
  • 网站优化案例校园网络安全设计方案
  • 网站推广的岗位要求网站建设好了还要收取维护费
  • 宁国做网站html5国内网站建设
  • 唐山做网站价格旅游网站建设经济评价
  • 公司的网站建设要记到什么科目焦作建设企业网站公司
  • html做网站标题的代码网页设计指的是什么
  • 深圳有哪些网站公司建设促销网站前的市场分析
  • rust做网站桂林漓江官网
  • 手表拍卖网站有几个网站打不开
  • 三网合一网站建设全包费用玄武模板网站制作点击查看
  • 网站建设服务的会计处理全媒体运营师报考官网在哪里
  • 手机网站打开自动wap微信crm软件
  • 代做网站灰色关键词h5界面设计
  • 最简单网站开发软件网页浏览器哪个好用
  • 站长之家seo综合做网站项目团队口号