All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.mzlion.easyokhttp.request.CommonPostRequest Maven / Gradle / Ivy

Go to download

easy-okhttp是对okhttp3上层封装的网络框架,支持文件上传和下载表单提交(文件和一个参数对应多值), 链式调用,并且默认整合Gson,对返回结果多种转换,同时还支持HTTPS单向认证和双向认证等特性。

There is a newer version: 1.1.4
Show newest version
/*
 * Copyright (C) 2016 mzlion([email protected]).
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.mzlion.easyokhttp.request;

import com.mzlion.core.lang.CollectionUtils;
import com.mzlion.core.lang.StringUtils;
import okhttp3.FormBody;
import okhttp3.Request;
import okhttp3.RequestBody;

import java.util.IdentityHashMap;
import java.util.Map;

/**
 * 

* HTTP的POST提交封装对象,默认所有参数采用application/x-www-form-urlencoded编码后传递。 *

* 该POST提交数据形如Web开发的常规表单提交: *
 *     <form action="#" method="post" enctype="application/x-www-form-urlencoded">
 *         <input type="hidden" name="id" value="1">
 *         vinput type="text" name="username" value="admin">
 *      </form>
 * 
* * @author mzlion on 2016-04-16 */ public class CommonPostRequest extends AbstractHttpRequest { /** * 表单提交的参数对列表 */ private Map formParameters; /** * 默认构造器 * * @param url 请求地址 */ public CommonPostRequest(String url) { super(url); this.formParameters = new IdentityHashMap<>(); } /** * 设置提交的请求参数及其值 * * @param name 参数名 * @param value 参数值 * @return {@linkplain CommonPostRequest} */ public CommonPostRequest formParam(String name, String value) { if (StringUtils.hasText(name) && StringUtils.hasLength(value)) { this.formParameters.put(name, value); } return this; } /** * 设置提交的请求参数及其值 * * @param parameters 键值对列表 * @return {@linkplain CommonPostRequest} */ public CommonPostRequest formParam(Map parameters) { if (CollectionUtils.isNotEmpty(parameters)) { for (String name : parameters.keySet()) { if (StringUtils.hasLength(name) && StringUtils.hasText(parameters.get(name))) this.formParameters.put(name, parameters.get(name)); } } return this; } /** * 获取{@linkplain RequestBody}对象 */ @Override protected RequestBody generateRequestBody() { FormBody.Builder builder = new FormBody.Builder(); if (CollectionUtils.isNotEmpty(this.formParameters)) { for (Map.Entry entry : this.formParameters.entrySet()) { builder.add(entry.getKey(), entry.getValue()); } } return builder.build(); } /** * 根据不同的请求方式,将RequestBody转换成Request对象 * * @param requestBody 请求体 * @return {@link Request} * @see RequestBody */ @Override protected Request generateRequest(RequestBody requestBody) { Request.Builder builder = new Request.Builder(); builder.headers(super.buildHeaders()); return builder.url(this.buildUrl()).post(requestBody).build(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy