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

wordpress插件实现图片放大最新外贸seo

wordpress插件实现图片放大,最新外贸seo,江西南昌网站建设服务,帝国cms是个人网站OkHttpClient 是一个由 Square 公司开发的 HTTP 客户端库#xff0c;用于在 Android 和 Java 应用中进行网络请求。它支持同步和异步请求、连接池、超时设置、拦截器等功能#xff0c;适合用于高性能网络请求#xff0c;特别是在需要处理复杂的网络操作时。 一、OKHttpClien…OkHttpClient 是一个由 Square 公司开发的 HTTP 客户端库用于在 Android 和 Java 应用中进行网络请求。它支持同步和异步请求、连接池、超时设置、拦截器等功能适合用于高性能网络请求特别是在需要处理复杂的网络操作时。 一、OKHttpClient介绍 主要特点 同步和异步请求 同步请求会在当前线程等待响应适合不需要并发的简单请求。 异步请求会将网络操作交由后台线程处理不会阻塞主线程适合需要并发处理或在 Android 等环境中使用。 连接池 OkHttp 默认会使用连接池来复用 HTTP 连接从而提高性能减少连接的建立和关闭的开销。 拦截器 (Interceptor) 拦截器允许在请求和响应时进行操作例如可以在请求发送前添加认证信息或在响应到达后进行日志记录。 自动处理 HTTP/2 和 SPDY OkHttp 默认支持 HTTP/2 协议可以提升多路复用性能使多个请求共享一个 TCP 连接。 缓存机制 OkHttp 提供了默认的缓存机制可以根据 HTTP 响应头自动缓存请求结果减少重复网络请求。 超时控制 可以对连接、读取和写入操作分别设置超时避免长时间无响应的请求卡住应用。 二、在实际项目中的应用 1引入maven配置 !-- ok的Http连接池 --     dependencygroupIdcom.squareup.okhttp3/groupIdartifactIdokhttp/artifactIdversion4.9.3/version /dependency 2自定义HttpUtils工具类 import com.alibaba.fastjson.JSONObject; import com.yan.project.httpUtils.okHttp2.HttpRequestBody; import lombok.extern.slf4j.Slf4j; import okhttp3.*;import java.io.Closeable; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.concurrent.TimeUnit;Slf4j public class OkHttpUtils {private OkHttpUtils() {throw new IllegalArgumentException(Utility class);}private static final String MIME_JSON application/json; charsetutf-8;private static OkHttpClient httpClient new OkHttpClient.Builder().connectTimeout(3, TimeUnit.SECONDS).writeTimeout(5, TimeUnit.SECONDS).readTimeout(5, TimeUnit.SECONDS).addInterceptor((Interceptor.Chain chain) - {Request req chain.request();try {Response res chain.proceed(req);return res;} catch (Exception ex) {throw ex;}}).build();// GET-无参public static String getJson(String url) throws IOException {return basicGet(url, null);}// GET-有参public static String get(String url, MapString, Object paramMap) throws Exception {StringBuilder sb new StringBuilder(url);if (paramMap ! null !paramMap.isEmpty()) {SetString keySet paramMap.keySet();for (String key : keySet) {sb.append(sb.toString().contains(?) ? : ?);sb.append(key).append().append(paramMap.get(key));}url sb.toString();}return basicGet(url, null);}// GET-有参、有请求头public static String getWithHeades(String url, MapString, Object paramMap, MapString, String headers) throws Exception {StringBuilder sb new StringBuilder(url);if (paramMap ! null !paramMap.isEmpty()) {SetString keySet paramMap.keySet();for (String key : keySet) {sb.append(sb.toString().contains(?) ? : ?);sb.append(key).append().append(paramMap.get(key));}url sb.toString();}return basicGet(url, headers);}// GET-jsonpublic static String getJsonWithHeader(String url, MapString, String headerMap) throws IOException {Request.Builder request new Request.Builder().url(url).get().header(Accept, MIME_JSON);if (headerMap ! null) {headerMap.forEach(request::header);}try (Response response httpClient.newCall(request.build()).execute()) {log.info(response_code:{}, response_body:{}, response.code(), response.body().string());return response.body().string();}}// POST-json传参public static String postJsonWithHeader(String url, Object reqBody, MapString, String headers) throws IOException {Request.Builder request new Request.Builder().url(url).header(Accept, MIME_JSON).post(FormBody.create(MediaType.parse(MIME_JSON), JSONObject.toJSONString(reqBody)));// 遍历并添加 headerif (headers ! null) {headers.forEach(request::header);}try (Response response httpClient.newCall(request.build()).execute()) {log.info(response_code:{}, response_body:{}, response.code(), response.body().string());return response.body().string();}}// POST-param传参public static String postParamWithHeader(String url, MapString, Object paramMap, MapString, String headers) throws IOException {FormBody.Builder formBody new FormBody.Builder();if (Objects.nonNull(paramMap)) {paramMap.forEach((k, v) - formBody.add(k, (String) v));}Request.Builder request new Request.Builder().url(url).header(Accept, MIME_JSON).post(formBody.build());// 遍历并添加 headerif (headers ! null) {headers.forEach(request::header);}try (Response response httpClient.newCall(request.build()).execute()) {log.info(response_code:{}, response_body:{}, response.code(), response.body().string());return response.body().string();}}public static final String octet_stream_str application/octet-stream;public static final MediaType octet_stream MediaType.parse(octet_stream_str);public static void putStream(String url, InputStream inputStream, long contentLength) {Response response;try {RequestBody requestBody2 new HttpRequestBody(inputStream, contentLength);Request request new Request.Builder().url(url).addHeader(Content-Type, octet_stream_str).put(requestBody2).build();response httpClient.newCall(request).execute();String result response.body().string();if (response.code() ! 200) {throw new Exception(Saturn SDK stream upload failed, url: url response.code(): response.code() , msg: result);}} catch (Exception e) {e.printStackTrace();} finally {closeQuietly(inputStream);}}public static String putFile(String url, File file) throws Exception {RequestBody requestBody RequestBody.create(octet_stream, file);Request request new Request.Builder().url(url).addHeader(Content-Type, octet_stream_str).put(requestBody).build();Response response httpClient.newCall(request).execute();String result response.body().string();int code response.code();log.info(putFile end, url:{}, response.code:{}, result:{}, url, code, result);if (code ! 200) {throw new Exception(putFile failed, response.code(): code , result: result);}return result;}private static String basicGet(String url, MapString, String headers) throws IOException {Request.Builder builder new Request.Builder().url(url).get();// 遍历并添加 headerif (headers ! null) {headers.forEach(builder::header);}try (Response response httpClient.newCall(builder.build()).execute()) {return response.body().string();}}private static String basicDelete(String url, Headers headers) throws IOException {Request.Builder builder new Request.Builder().url(url).delete();if (headers ! null) {builder.headers(headers);}try (Response response httpClient.newCall(builder.build()).execute()) {return response.body().string();}}public static void closeQuietly(Closeable is) {if (is ! null) {try {is.close();} catch (Exception ex) {log.error(Resources encounter an exception when closingex{}, ex.getMessage());}}} }这个 OkHttpUtils 类封装了 OkHttpClient 来进行 HTTP 请求支持 GET、POST、PUT 等常见的 HTTP 方法并提供了对参数、请求头、文件上传等功能的支持。以下是它的主要功能和使用方法的解释 OkHttpClient 实例 使用 OkHttpClient.Builder() 创建设置了超时时间连接超时 3 秒读写超时 5 秒并添加了拦截器。 静态方法 getJson, get, getWithHeades, getJsonWithHeader用于 GET 请求支持无参、有参数和请求头的场景。 postJsonWithHeader, postParamWithHeader用于 POST 请求支持 JSON 数据或表单数据传递。 putStream, putFile用于 PUT 请求支持流和文件上传。 basicGet, basicDelete内部通用方法分别处理 GET 和 DELETE 请求。 三、拓展和使用建议 增强错误处理当前仅在拦截器中简单处理了异常可以考虑在各个方法中增加详细的异常处理机制。连接池管理默认情况下OkHttp 使用连接池来提升性能类内部也可以进一步定制连接池策略来优化并发性能。异步支持所有请求均为同步请求适合使用时可以考虑用 OkHttp 提供的 enqueue() 方法进行异步操作防止阻塞主线程。 通过这些封装OkHttpUtils 能够方便地发送 HTTP 请求并处理响应。在实际项目中你可以根据需要调整超时设置、缓存机制等配置。
http://www.lakalapos1.cn/news/60747/

相关文章:

  • 做一个简单的网站多少钱网站开发案例代码
  • 网页链接外贸seo博客
  • 网站设置高度网上在线购物系统
  • 全响应网站ppt模板免费下载完整版免费无需会员
  • 工厂弄个网站做外贸如何处理东莞市网站建设分站公司
  • 重庆网站排名提升wordpress如何导出主题
  • 编程网站网址山东网站开发学校
  • 网站设计报价.doc西安为什么今天紧急通知
  • wordpress 相对路径北京网络优化
  • wordpress迁移typecho网站推广优化趋势
  • 建设网站的费用如何账务处理网站开发的过程步骤
  • 做网站产品图片素材赣州万图网络科技有限公司
  • 学习网站建设需要什么合肥网站优化哪家好
  • 响应式网站开发哪家好哪个网站可以做代销
  • 周浦手机网站策划建设公司接外包的平台
  • 西安免费公司网站设计php网站开发工程师月薪
  • 定制营销型网站建设给wordpress替换主题
  • 网站建设 淘宝运营做算法的网站
  • 农业电商网站建设方案网站前期设计
  • 网站建设现状调查研究如何查看网站是用什么模板做的
  • 中国网站建设市场分析荣耀手机全部型号
  • 做中考试卷的网站找做网站公司
  • 海淀企业网站搭建铜陵市企业网站建设
  • 宁波网站建设计新网站怎么做seo
  • 苏州企业网站制作开发深圳市建设监理协会网站
  • 制作网站参考如何完整保存网站并做修改
  • 编辑网站绑定深圳市建工集团
  • 企业网站建设的一般要素包括什么优秀网站设计要素
  • 在线个人资料制作网站wordpress使用密码注册注册
  • cms网站建设的优缺点青岛装修设计公司排名