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

德保县建设局的网站墨刀制作网页教程

德保县建设局的网站,墨刀制作网页教程,青岛房地产团购网站建设,wordpress小清新模板HTTP客户端工具 okhttp3 form/json/multipart 提供表达、json、混合表单、混合表单文件流传输等HTTP请求调用支持自定义配置默认客户端#xff0c;参数列表如下#xff1a; okhtt3.config.connectTimeout 连接超时#xff0c;TimeUnit.SECONDSokhtt3.config.readTimeOut 读…HTTP客户端工具 okhttp3 form/json/multipart 提供表达、json、混合表单、混合表单文件流传输等HTTP请求调用支持自定义配置默认客户端参数列表如下 okhtt3.config.connectTimeout 连接超时TimeUnit.SECONDSokhtt3.config.readTimeOut 读取超时TimeUnit.SECONDSokhtt3.config.writeTimeOut 写超时TimeUnit.SECONDSokhtt3.config.callTimeout 流程超时TimeUnit.SECONDS写一个组件第一步首先就是定义功能接口啦 public interface Okhttp3 {String postRequest(OkHttpClient httpClient, RequestBody requestBody, String url, MapString, String headers) throws IOException; } 然后就是注入我们自定义的okhttpClient自定义配置参数如下 ConfigurationProperties(prefix okhtt3.config) public class DefaultOkhttp3ClientProperties {private Integer connectTimeout 2;private Integer readTimeout 10;private Integer writeTimeout 10;private Integer callTimeOut 20;public Integer getConnectTimeout() {return connectTimeout;}public void setConnectTimeout(Integer connectTimeout) {this.connectTimeout connectTimeout;}public Integer getReadTimeout() {return readTimeout;}public void setReadTimeout(Integer readTimeout) {this.readTimeout readTimeout;}public Integer getWriteTimeout() {return writeTimeout;}public void setWriteTimeout(Integer writeTimeout) {this.writeTimeout writeTimeout;}public Integer getCallTimeOut() {return callTimeOut;}public void setCallTimeOut(Integer callTimeOut) {this.callTimeOut callTimeOut;} } 注入自定义客户端支持HTTP/HTTPS Configuration EnableConfigurationProperties(DefaultOkhttp3ClientProperties.class) public class Okhttp3Configuration {Beanpublic DefaultOkhttp3 defaultOkhttp3() {return new DefaultOkhttp3();}BeanConditionalOnMissingBeanpublic OkHttpClient okHttpClient(Autowired DefaultOkhttp3ClientProperties defaultOkhttp3ClientProperties) {X509TrustManager x509TrustManager trustManager();final SSLContext sslContext;try {sslContext SSLContext.getInstance(SSL);sslContext.init(null, new TrustManager[]{x509TrustManager}, new java.security.SecureRandom());} catch (Exception e) {throw new RuntimeException(e);}final SSLSocketFactory sslSocketFactory sslContext.getSocketFactory();OkHttpClient.Builder builder new OkHttpClient.Builder();builder.sslSocketFactory(sslSocketFactory, x509TrustManager);builder.hostnameVerifier((hostname, session) - true);builder.connectTimeout(defaultOkhttp3ClientProperties.getConnectTimeout(), TimeUnit.SECONDS);builder.readTimeout(defaultOkhttp3ClientProperties.getReadTimeout(), TimeUnit.SECONDS);builder.writeTimeout(defaultOkhttp3ClientProperties.getWriteTimeout(), TimeUnit.SECONDS);builder.callTimeout(defaultOkhttp3ClientProperties.getCallTimeOut(), TimeUnit.SECONDS);return builder.build();}private static X509TrustManager trustManager() {return new X509TrustManager() {Overridepublic void checkClientTrusted(X509Certificate[] chain, String authType) {}Overridepublic void checkServerTrusted(X509Certificate[] chain, String authType) {}Overridepublic X509Certificate[] getAcceptedIssuers() {return new X509Certificate[0];}};} }下面就是我们应对何种复杂业务的实现了简单的表单请求、JSON请求到文件上传接着就是文件流传输等等针对大文件的传入直接通过网络流传递避免内存问题。下面是各种需求的实现 public class DefaultOkhttp3 implements Okhttp3 {Overridepublic String postRequest(OkHttpClient httpClient, RequestBody requestBody, String url, MapString, String headers) throws IOException {Call call makeRequestCall(httpClient, requestBody, url, headers);return postRequest(call);}public String buildUrlIncludeQueryParams(String url, MapString, String queryParams) {HttpUrl.Builder builder Objects.requireNonNull(HttpUrl.parse(url)).newBuilder();queryParams.forEach(builder::addQueryParameter);return builder.build().toString();}public RequestBody buildJsonRequestBody(String json) {return RequestBody.create(json, MediaType.parse(application/json; charsetutf-8));}public RequestBody buildFormRequestBody(MapString, String formBody) {FormBody.Builder builder new FormBody.Builder();formBody.forEach(builder::add);return builder.build();}public RequestBody buildMultipartRequestBodyOfFiles(MapString, String formBody, MapString, FilePat fileMap) {MultipartBody.Builder builder new MultipartBody.Builder();builder.setType(MultipartBody.FORM);formBody.forEach(builder::addFormDataPart);fileMap.forEach((k, v) - builder.addFormDataPart(k, v.getFile().getName(), RequestBody.create(v.getFile(), v.getMediaType())));return builder.build();}public RequestBody buildMultipartFilesRequestBody(MapString, String formBody, MapString, MultipartFile fileMap) {MultipartBody.Builder builder new MultipartBody.Builder();builder.setType(MultipartBody.FORM);formBody.forEach(builder::addFormDataPart);fileMap.forEach((k, v) - {try {builder.addFormDataPart(k, v.getName(), RequestBody.create(v.getBytes(), MediaType.get(Objects.requireNonNull(v.getContentType()))));} catch (IOException e) {throw new RuntimeException(e);}});return builder.build();}public RequestBody buildMultipartFilesInputStreamRequestBody(MapString, String formBody, MapString, MultipartFile fileMap) {MultipartBody.Builder builder new MultipartBody.Builder();builder.setType(MultipartBody.FORM);formBody.forEach(builder::addFormDataPart);fileMap.forEach((k, v) - {builder.addFormDataPart(k, v.getOriginalFilename(), new RequestBody() {NotNullOverridepublic MediaType contentType() {return MediaType.get(Objects.requireNonNull(v.getContentType()));}Overridepublic long contentLength() {return v.getSize();}Overridepublic void writeTo(NotNull BufferedSink bufferedSink) throws IOException {try (InputStream inputStream v.getInputStream()) {byte[] buffer new byte[2048];int len;while ((len inputStream.read(buffer)) ! -1) {bufferedSink.write(buffer, 0, len);bufferedSink.flush();}}}});});return builder.build();}public static class FilePat {private File file;private MediaType mediaType;public File getFile() {return file;}public void setFile(File file) {this.file file;}public MediaType getMediaType() {return mediaType;}public void setMediaType(MediaType mediaType) {this.mediaType mediaType;}}private Call makeRequestCall(OkHttpClient httpClient, RequestBody body, String reqUrl, MapString, String headers) {Request.Builder reqBuilder new Request.Builder();reqBuilder.url(reqUrl).post(body);if (headers ! null !headers.isEmpty()) {for (Map.EntryString, String entry : headers.entrySet()) {reqBuilder.header(entry.getKey(), entry.getValue());}}return httpClient.newCall(reqBuilder.build());}private String postRequest(Call call) throws IOException {try (Response resp call.execute()) {ResponseBody rb resp.body();if (resp.code() ! 200) {String msg null;if (rb ! null) {msg rb.string();}throw new IOException(http code: resp.code() (msg ! null ? ,msg: msg : ));}if (rb null) {throw new IllegalStateException(http response body is null);}return rb.string();}}}
http://www.w-s-a.com/news/542151/

相关文章:

  • 网站建设在开封找谁做wordpress 数据转换
  • 旅游网站开发的流程江苏付费网络推广培训
  • 网站软文标题2018wordpress主题
  • 德清网站设计wordpress免登录发布接
  • 可以做游戏的网站有哪些客户关系管理系统的主要功能
  • 整人关不掉的网站怎么做广东省网站免备案表
  • 网站设计素材edu域名网站
  • 中山学校的网站建设wordpress文章图片显示不出
  • 兰溪城市建设规划网站网站联盟的基本流程
  • 免费推广网站注册入口小说阅读网站怎么建设
  • 新网站怎么做网络推广怎么做企业网站排名
  • jsp商业网站开发网站链接如何做二维码
  • 江苏高校品牌专业建设网站怎么制作网站搜索窗口
  • 北京app建设 网站开发公司织梦网站seo
  • 大学网站 作风建设专题汽车配件外贸出口公司
  • 东莞做网站系统购物网站建设精英
  • 建设vip网站相关视频网站营销建设公司
  • 微站直播平台杭州seo按天计费
  • seo 新旧网站 两个域名福州设计网站建设
  • 如何做网站客户端如何做网络营销网站
  • 苏州网站建设制度打鱼网站建设
  • 瓜子二手车直卖网上海小红书seo
  • 天津中小企业网站制作珠海做网站的
  • 网站排名影响因素最牛的科技网站建设
  • 长春网站建设公司怎么样电商网站建设与开发期末考试
  • 品牌网站建设搭建国内外网站建设
  • 辽宁人社app一直更新整站seo定制
  • 兰州网站建设论坛装修品牌
  • 云南省城乡住房与建设厅网站用什么网站可以做电子书
  • 自己电脑怎么做网站服务器吗0基础如何做网站