8176751: Better URL connections
Reviewed-by: chegar, michaelm, rhalade, rpatil, vtewari
This commit is contained in:
parent
f92a050948
commit
c8812e460a
@ -38,6 +38,7 @@ package com.sun.net.ssl.internal.www.protocol.https;
|
||||
import java.net.URL;
|
||||
import java.net.Proxy;
|
||||
import java.net.ProtocolException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.io.*;
|
||||
import java.net.Authenticator;
|
||||
import javax.net.ssl.*;
|
||||
@ -78,10 +79,18 @@ public class HttpsURLConnectionOldImpl
|
||||
this(u, null, handler);
|
||||
}
|
||||
|
||||
static URL checkURL(URL u) throws IOException {
|
||||
if (u != null) {
|
||||
if (u.toExternalForm().indexOf('\n') > -1) {
|
||||
throw new MalformedURLException("Illegal character in URL");
|
||||
}
|
||||
}
|
||||
return u;
|
||||
}
|
||||
// For both copies of the file, uncomment one line and comment the other
|
||||
// HttpsURLConnectionImpl(URL u, Handler handler) throws IOException {
|
||||
HttpsURLConnectionOldImpl(URL u, Proxy p, Handler handler) throws IOException {
|
||||
super(u);
|
||||
super(checkURL(u));
|
||||
delegate = new DelegateHttpsURLConnection(url, p, handler, this);
|
||||
}
|
||||
|
||||
|
@ -843,18 +843,36 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
|
||||
this(u, null, handler);
|
||||
}
|
||||
|
||||
public HttpURLConnection(URL u, String host, int port) {
|
||||
this(u, new Proxy(Proxy.Type.HTTP, InetSocketAddress.createUnresolved(host, port)));
|
||||
private static String checkHost(String h) throws IOException {
|
||||
if (h != null) {
|
||||
if (h.indexOf('\n') > -1) {
|
||||
throw new MalformedURLException("Illegal character in host");
|
||||
}
|
||||
}
|
||||
return h;
|
||||
}
|
||||
public HttpURLConnection(URL u, String host, int port) throws IOException {
|
||||
this(u, new Proxy(Proxy.Type.HTTP,
|
||||
InetSocketAddress.createUnresolved(checkHost(host), port)));
|
||||
}
|
||||
|
||||
/** this constructor is used by other protocol handlers such as ftp
|
||||
that want to use http to fetch urls on their behalf.*/
|
||||
public HttpURLConnection(URL u, Proxy p) {
|
||||
public HttpURLConnection(URL u, Proxy p) throws IOException {
|
||||
this(u, p, new Handler());
|
||||
}
|
||||
|
||||
protected HttpURLConnection(URL u, Proxy p, Handler handler) {
|
||||
super(u);
|
||||
private static URL checkURL(URL u) throws IOException {
|
||||
if (u != null) {
|
||||
if (u.toExternalForm().indexOf('\n') > -1) {
|
||||
throw new MalformedURLException("Illegal character in URL");
|
||||
}
|
||||
}
|
||||
return u;
|
||||
}
|
||||
protected HttpURLConnection(URL u, Proxy p, Handler handler)
|
||||
throws IOException {
|
||||
super(checkURL(u));
|
||||
requests = new MessageHeader();
|
||||
responses = new MessageHeader();
|
||||
userHeaders = new MessageHeader();
|
||||
|
@ -38,6 +38,7 @@ package sun.net.www.protocol.https;
|
||||
import java.net.URL;
|
||||
import java.net.Proxy;
|
||||
import java.net.ProtocolException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.io.*;
|
||||
import java.net.Authenticator;
|
||||
import javax.net.ssl.*;
|
||||
@ -80,10 +81,18 @@ public class HttpsURLConnectionImpl
|
||||
this(u, null, handler);
|
||||
}
|
||||
|
||||
static URL checkURL(URL u) throws IOException {
|
||||
if (u != null) {
|
||||
if (u.toExternalForm().indexOf('\n') > -1) {
|
||||
throw new MalformedURLException("Illegal character in URL");
|
||||
}
|
||||
}
|
||||
return u;
|
||||
}
|
||||
// For both copies of the file, uncomment one line and comment the other
|
||||
HttpsURLConnectionImpl(URL u, Proxy p, Handler handler) throws IOException {
|
||||
// HttpsURLConnectionOldImpl(URL u, Proxy p, Handler handler) throws IOException {
|
||||
super(u);
|
||||
super(checkURL(u));
|
||||
delegate = new DelegateHttpsURLConnection(url, p, handler, this);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user