Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>com.xkcoding.http</groupId>
<artifactId>simple-http</artifactId>
<version>1.0.3</version>
<version>1.0.4</version>

<name>${project.artifactId}</name>
<url>https://github.com/xkcoding/simple-http</url>
Expand Down
17 changes: 9 additions & 8 deletions src/main/java/com/xkcoding/http/HttpUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import com.xkcoding.http.support.AbstractHttp;
import com.xkcoding.http.support.Http;
import com.xkcoding.http.support.HttpHeader;
import com.xkcoding.http.support.SimpleHttpResponse;
import com.xkcoding.http.util.ClassUtil;
import lombok.experimental.UtilityClass;

Expand Down Expand Up @@ -98,7 +99,7 @@ public void setConfig(HttpConfig httpConfig) {
* @param url URL
* @return 结果
*/
public String get(String url) {
public SimpleHttpResponse get(String url) {
checkHttpNotNull(proxy);
return proxy.get(url);
}
Expand All @@ -111,7 +112,7 @@ public String get(String url) {
* @param encode 是否需要 url encode
* @return 结果
*/
public String get(String url, Map<String, String> params, boolean encode) {
public SimpleHttpResponse get(String url, Map<String, String> params, boolean encode) {
checkHttpNotNull(proxy);
return proxy.get(url, params, encode);
}
Expand All @@ -125,7 +126,7 @@ public String get(String url, Map<String, String> params, boolean encode) {
* @param encode 是否需要 url encode
* @return 结果
*/
public String get(String url, Map<String, String> params, HttpHeader header, boolean encode) {
public SimpleHttpResponse get(String url, Map<String, String> params, HttpHeader header, boolean encode) {
checkHttpNotNull(proxy);
return proxy.get(url, params, header, encode);
}
Expand All @@ -136,7 +137,7 @@ public String get(String url, Map<String, String> params, HttpHeader header, boo
* @param url URL
* @return 结果
*/
public String post(String url) {
public SimpleHttpResponse post(String url) {
checkHttpNotNull(proxy);
return proxy.post(url);
}
Expand All @@ -148,7 +149,7 @@ public String post(String url) {
* @param data JSON 参数
* @return 结果
*/
public String post(String url, String data) {
public SimpleHttpResponse post(String url, String data) {
checkHttpNotNull(proxy);
return proxy.post(url, data);
}
Expand All @@ -161,7 +162,7 @@ public String post(String url, String data) {
* @param header 请求头
* @return 结果
*/
public String post(String url, String data, HttpHeader header) {
public SimpleHttpResponse post(String url, String data, HttpHeader header) {
checkHttpNotNull(proxy);
return proxy.post(url, data, header);
}
Expand All @@ -174,7 +175,7 @@ public String post(String url, String data, HttpHeader header) {
* @param encode 是否需要 url encode
* @return 结果
*/
public String post(String url, Map<String, String> params, boolean encode) {
public SimpleHttpResponse post(String url, Map<String, String> params, boolean encode) {
checkHttpNotNull(proxy);
return proxy.post(url, params, encode);
}
Expand All @@ -188,7 +189,7 @@ public String post(String url, Map<String, String> params, boolean encode) {
* @param encode 是否需要 url encode
* @return 结果
*/
public String post(String url, Map<String, String> params, HttpHeader header, boolean encode) {
public SimpleHttpResponse post(String url, Map<String, String> params, HttpHeader header, boolean encode) {
checkHttpNotNull(proxy);
return proxy.post(url, params, header, encode);
}
Expand Down
16 changes: 8 additions & 8 deletions src/main/java/com/xkcoding/http/support/Http.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public interface Http {
* @param url URL
* @return 结果
*/
String get(String url);
SimpleHttpResponse get(String url);

/**
* GET 请求
Expand All @@ -43,7 +43,7 @@ public interface Http {
* @param encode 是否需要 url encode
* @return 结果
*/
String get(String url, Map<String, String> params, boolean encode);
SimpleHttpResponse get(String url, Map<String, String> params, boolean encode);

/**
* GET 请求
Expand All @@ -54,15 +54,15 @@ public interface Http {
* @param encode 是否需要 url encode
* @return 结果
*/
String get(String url, Map<String, String> params, HttpHeader header, boolean encode);
SimpleHttpResponse get(String url, Map<String, String> params, HttpHeader header, boolean encode);

/**
* POST 请求
*
* @param url URL
* @return 结果
*/
String post(String url);
SimpleHttpResponse post(String url);

/**
* POST 请求
Expand All @@ -71,7 +71,7 @@ public interface Http {
* @param data JSON 参数
* @return 结果
*/
String post(String url, String data);
SimpleHttpResponse post(String url, String data);

/**
* POST 请求
Expand All @@ -81,7 +81,7 @@ public interface Http {
* @param header 请求头
* @return 结果
*/
String post(String url, String data, HttpHeader header);
SimpleHttpResponse post(String url, String data, HttpHeader header);

/**
* POST 请求
Expand All @@ -91,7 +91,7 @@ public interface Http {
* @param encode 是否需要 url encode
* @return 结果
*/
String post(String url, Map<String, String> params, boolean encode);
SimpleHttpResponse post(String url, Map<String, String> params, boolean encode);

/**
* POST 请求
Expand All @@ -102,5 +102,5 @@ public interface Http {
* @param encode 是否需要 url encode
* @return 结果
*/
String post(String url, Map<String, String> params, HttpHeader header, boolean encode);
SimpleHttpResponse post(String url, Map<String, String> params, HttpHeader header, boolean encode);
}
75 changes: 75 additions & 0 deletions src/main/java/com/xkcoding/http/support/SimpleHttpResponse.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
package com.xkcoding.http.support;

import java.util.List;
import java.util.Map;

/**
* <p>
* 响应封装
* </p>
*
* @author zhihai.yu
* @date Created in 2021/09/10 20:24
*/
public class SimpleHttpResponse {
private boolean success;
private int code;
private Map<String, List<String>> headers;
private String body;

public SimpleHttpResponse() {
}

public SimpleHttpResponse(boolean success, int code, Map<String, List<String>> headers, String body) {
this.success = success;
this.code = code;
this.headers = headers;
this.body = body;
}

public Map<String, List<String>> getHeaders() {
return headers;
}

public SimpleHttpResponse setHeaders(Map<String, List<String>> headers) {
this.headers = headers;
return this;
}

public String getBody() {
return body;
}

public SimpleHttpResponse setBody(String body) {
this.body = body;
return this;
}

public boolean isSuccess() {
return success;
}

public SimpleHttpResponse setSuccess(boolean success) {
this.success = success;
return this;
}

public int getCode() {
return code;
}

public SimpleHttpResponse setCode(int code) {
this.code = code;
return this;
}

@Override
public String toString() {
return "SimpleHttpResponse{" +
"success=" + success +
", code=" + code +
", headers=" + headers +
", body='" + body + '\'' +
'}';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

package com.xkcoding.http.support.httpclient;

import com.xkcoding.http.support.SimpleHttpResponse;
import com.xkcoding.http.config.HttpConfig;
import com.xkcoding.http.constants.Constants;
import com.xkcoding.http.exception.SimpleHttpException;
Expand All @@ -24,6 +25,7 @@
import com.xkcoding.http.util.MapUtil;
import com.xkcoding.http.util.StringUtil;
import org.apache.http.Header;
import org.apache.http.HeaderElement;
import org.apache.http.HttpHost;
import org.apache.http.NameValuePair;
import org.apache.http.client.config.RequestConfig;
Expand All @@ -42,8 +44,10 @@
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
* <p>
Expand All @@ -69,7 +73,7 @@ public HttpClientImpl(CloseableHttpClient httpClient, HttpConfig httpConfig) {
this.httpClient = httpClient;
}

private String exec(HttpRequestBase request) {
private SimpleHttpResponse exec(HttpRequestBase request) {
this.addHeader(request);
// 设置超时时长
RequestConfig.Builder configBuilder = RequestConfig.custom().setConnectTimeout(httpConfig.getTimeout()).setSocketTimeout(httpConfig.getTimeout()).setConnectionRequestTimeout(httpConfig.getTimeout());
Expand All @@ -84,21 +88,27 @@ private String exec(HttpRequestBase request) {
request.setConfig(configBuilder.build());

try (CloseableHttpResponse response = this.httpClient.execute(request)) {
if (!isSuccess(response)) {
throw new SimpleHttpException("Unexpected code " + response);
}

StringBuffer body = new StringBuffer();
if (response.getEntity() != null) {
body.append(EntityUtils.toString(response.getEntity(), Constants.DEFAULT_ENCODING));
}

return body.toString();
int code = response.getStatusLine().getStatusCode();
boolean success = isSuccess(response);
Map<String, List<String>> headers = Arrays.stream(response.getAllHeaders()).collect(Collectors.toMap(Header::getName, (value) -> {
ArrayList<String> headerValue = new ArrayList<>();
headerValue.add(value.getValue());
return headerValue;
},(oldValue,newValue)->newValue));
return new SimpleHttpResponse(success,code,headers, body.toString());
} catch (IOException e) {
throw new SimpleHttpException(e);
e.printStackTrace();
return new SimpleHttpResponse(false,400,null,null);
}
}


/**
* 添加request header
*
Expand Down Expand Up @@ -129,7 +139,7 @@ private boolean isSuccess(CloseableHttpResponse response) {
* @return 结果
*/
@Override
public String get(String url) {
public SimpleHttpResponse get(String url) {
return this.get(url, null, false);
}

Expand All @@ -142,7 +152,7 @@ public String get(String url) {
* @return 结果
*/
@Override
public String get(String url, Map<String, String> params, boolean encode) {
public SimpleHttpResponse get(String url, Map<String, String> params, boolean encode) {
return this.get(url, params, null, encode);
}

Expand All @@ -156,7 +166,7 @@ public String get(String url, Map<String, String> params, boolean encode) {
* @return 结果
*/
@Override
public String get(String url, Map<String, String> params, HttpHeader header, boolean encode) {
public SimpleHttpResponse get(String url, Map<String, String> params, HttpHeader header, boolean encode) {
String baseUrl = StringUtil.appendIfNotContain(url, "?", "&");
url = baseUrl + MapUtil.parseMapToString(params, encode);

Expand All @@ -176,7 +186,7 @@ public String get(String url, Map<String, String> params, HttpHeader header, boo
* @return 结果
*/
@Override
public String post(String url) {
public SimpleHttpResponse post(String url) {
HttpPost httpPost = new HttpPost(url);
return this.exec(httpPost);
}
Expand All @@ -189,7 +199,7 @@ public String post(String url) {
* @return 结果
*/
@Override
public String post(String url, String data) {
public SimpleHttpResponse post(String url, String data) {
return this.post(url, data, null);
}

Expand All @@ -202,7 +212,7 @@ public String post(String url, String data) {
* @return 结果
*/
@Override
public String post(String url, String data, HttpHeader header) {
public SimpleHttpResponse post(String url, String data, HttpHeader header) {
HttpPost httpPost = new HttpPost(url);

if (StringUtil.isNotEmpty(data)) {
Expand All @@ -228,7 +238,7 @@ public String post(String url, String data, HttpHeader header) {
* @return 结果
*/
@Override
public String post(String url, Map<String, String> params, boolean encode) {
public SimpleHttpResponse post(String url, Map<String, String> params, boolean encode) {
return this.post(url, params, null, encode);
}

Expand All @@ -242,7 +252,7 @@ public String post(String url, Map<String, String> params, boolean encode) {
* @return 结果
*/
@Override
public String post(String url, Map<String, String> params, HttpHeader header, boolean encode) {
public SimpleHttpResponse post(String url, Map<String, String> params, HttpHeader header, boolean encode) {
HttpPost httpPost = new HttpPost(url);

if (MapUtil.isNotEmpty(params)) {
Expand Down
Loading