修复HttpClient3下Socket isClosed 异常

This commit is contained in:
jinyu 2015-11-09 15:58:51 +08:00
parent e27180eb20
commit b4a865dedd

View File

@ -7,10 +7,8 @@ import java.net.InetSocketAddress;
import java.net.Proxy; import java.net.Proxy;
import java.net.Socket; import java.net.Socket;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import javax.net.ssl.SSLContext; import javax.net.ssl.SSLContext;
@ -58,17 +56,27 @@ public class HttpComponent3 extends AbstractHttpClient {
private final org.apache.commons.httpclient.HttpClient httpClient; private final org.apache.commons.httpclient.HttpClient httpClient;
private final Map<HttpMethod, org.apache.commons.httpclient.HttpMethod> methodMap;
public HttpComponent3(org.apache.commons.httpclient.HttpClient httpClient) { public HttpComponent3(org.apache.commons.httpclient.HttpClient httpClient) {
this.httpClient = httpClient; this.httpClient = httpClient;
this.methodMap = new HashMap<HttpMethod, org.apache.commons.httpclient.HttpMethod>(); }
methodMap.put(HttpMethod.GET, new GetMethod());
methodMap.put(HttpMethod.HEAD, new HeadMethod()); private org.apache.commons.httpclient.HttpMethod method2method(
methodMap.put(HttpMethod.POST, new PostMethod()); HttpMethod method) {
methodMap.put(HttpMethod.PUT, new PutMethod()); if (method == HttpMethod.GET) {
methodMap.put(HttpMethod.DELETE, new DeleteMethod()); return new GetMethod();
methodMap.put(HttpMethod.OPTIONS, new OptionsMethod()); } else if (method == HttpMethod.HEAD) {
return new HeadMethod();
} else if (method == HttpMethod.POST) {
return new PostMethod();
} else if (method == HttpMethod.PUT) {
return new PutMethod();
} else if (method == HttpMethod.DELETE) {
return new DeleteMethod();
} else if (method == HttpMethod.OPTIONS) {
return new OptionsMethod();
} else {
return null;
}
} }
@Override @Override
@ -77,8 +85,8 @@ public class HttpComponent3 extends AbstractHttpClient {
try { try {
URI uri = new URI(request.getURI().toString(), false, URI uri = new URI(request.getURI().toString(), false,
Consts.UTF_8.name()); Consts.UTF_8.name());
org.apache.commons.httpclient.HttpMethod httpMethod = methodMap org.apache.commons.httpclient.HttpMethod httpMethod = method2method(request
.get(request.getMethod()); .getMethod());
if (request.getMethod() == HttpMethod.TRACE) { if (request.getMethod() == HttpMethod.TRACE) {
httpMethod = new TraceMethod(uri.getEscapedURI()); httpMethod = new TraceMethod(uri.getEscapedURI());
} else { } else {