2003-12-02 Michael Koch <konqueror@gmx.de>
* gnu/java/net/protocol/http/Connection.java (Connection): Initialize doOutput to false; (connect): Initialize inputStream, moved "send request" code to new method. (sendRequest): New method. (getHttpHeaders): Don't reinitialize inputStream. From-SVN: r74177
This commit is contained in:
parent
2b95402c94
commit
91305a1de9
|
@ -1,3 +1,12 @@
|
||||||
|
2003-12-02 Michael Koch <konqueror@gmx.de>
|
||||||
|
|
||||||
|
* gnu/java/net/protocol/http/Connection.java
|
||||||
|
(Connection): Initialize doOutput to false;
|
||||||
|
(connect): Initialize inputStream, moved "send request" code to new
|
||||||
|
method.
|
||||||
|
(sendRequest): New method.
|
||||||
|
(getHttpHeaders): Don't reinitialize inputStream.
|
||||||
|
|
||||||
2003-12-02 Michael Koch <konqueror@gmx.de>
|
2003-12-02 Michael Koch <konqueror@gmx.de>
|
||||||
|
|
||||||
* gnu/java/net/protocol//http/Connection.java
|
* gnu/java/net/protocol//http/Connection.java
|
||||||
|
|
|
@ -117,6 +117,9 @@ public final class Connection extends HttpURLConnection
|
||||||
protected Connection(URL url)
|
protected Connection(URL url)
|
||||||
{
|
{
|
||||||
super(url);
|
super(url);
|
||||||
|
|
||||||
|
/* Set up some variables */
|
||||||
|
doOutput = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRequestProperty(String key, String value)
|
public void setRequestProperty(String key, String value)
|
||||||
|
@ -160,17 +163,15 @@ public final class Connection extends HttpURLConnection
|
||||||
socket = new Socket(url.getHost(), port);
|
socket = new Socket(url.getHost(), port);
|
||||||
}
|
}
|
||||||
|
|
||||||
PrintWriter out = new PrintWriter(socket.getOutputStream());
|
// Originally tried using a BufferedReader here to take advantage of
|
||||||
|
// the readLine method and avoid the following, but the buffer read
|
||||||
|
// past the end of the headers so the first part of the content was lost.
|
||||||
|
// It is probably more robust than it needs to be, e.g. the byte[]
|
||||||
|
// is unlikely to overflow and a '\r' should always be followed by a '\n',
|
||||||
|
// but it is better to be safe just in case.
|
||||||
|
inputStream = new BufferedInputStream(socket.getInputStream());
|
||||||
|
|
||||||
// Send request including any request properties that were set.
|
sendRequest();
|
||||||
out.print(getRequestMethod() + " " + url.getFile() + " HTTP/1.0\r\n");
|
|
||||||
out.print("Host: " + url.getHost() + ":" + port + "\r\n");
|
|
||||||
Enumeration reqKeys = requestProperties.keys();
|
|
||||||
Enumeration reqVals = requestProperties.elements();
|
|
||||||
while (reqKeys.hasMoreElements())
|
|
||||||
out.print(reqKeys.nextElement() + ": " + reqVals.nextElement() + "\r\n");
|
|
||||||
out.print("\r\n");
|
|
||||||
out.flush();
|
|
||||||
getHttpHeaders();
|
getHttpHeaders();
|
||||||
connected = true;
|
connected = true;
|
||||||
}
|
}
|
||||||
|
@ -194,6 +195,34 @@ public final class Connection extends HttpURLConnection
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Write HTTP request header and content to outputWriter.
|
||||||
|
*/
|
||||||
|
void sendRequest() throws IOException
|
||||||
|
{
|
||||||
|
// Create PrintWriter for easier sending of headers.
|
||||||
|
PrintWriter outputWriter = new PrintWriter(socket.getOutputStream());
|
||||||
|
|
||||||
|
// Send request including any request properties that were set.
|
||||||
|
outputWriter.print (getRequestMethod() + " " + url.getFile()
|
||||||
|
+ " HTTP/1.0\r\n");
|
||||||
|
|
||||||
|
// Set additional HTTP headers.
|
||||||
|
if (getRequestProperty ("Host") == null)
|
||||||
|
setRequestProperty ("Host", url.getHost());
|
||||||
|
|
||||||
|
// Write all req_props name-value pairs to the output writer.
|
||||||
|
Enumeration reqKeys = requestProperties.keys();
|
||||||
|
Enumeration reqVals = requestProperties.elements();
|
||||||
|
|
||||||
|
while (reqKeys.hasMoreElements())
|
||||||
|
outputWriter.print (reqKeys.nextElement() + ": " + reqVals.nextElement() + "\r\n");
|
||||||
|
|
||||||
|
// One more CR-LF indicates end of header.
|
||||||
|
outputWriter.print ("\r\n");
|
||||||
|
outputWriter.flush();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a boolean indicating whether or not this connection is
|
* Return a boolean indicating whether or not this connection is
|
||||||
* going through a proxy
|
* going through a proxy
|
||||||
|
@ -318,14 +347,6 @@ public final class Connection extends HttpURLConnection
|
||||||
*/
|
*/
|
||||||
private void getHttpHeaders() throws IOException
|
private void getHttpHeaders() throws IOException
|
||||||
{
|
{
|
||||||
// Originally tried using a BufferedReader here to take advantage of
|
|
||||||
// the readLine method and avoid the following, but the buffer read
|
|
||||||
// past the end of the headers so the first part of the content was lost.
|
|
||||||
// It is probably more robust than it needs to be, e.g. the byte[]
|
|
||||||
// is unlikely to overflow and a '\r' should always be followed by a '\n',
|
|
||||||
// but it is better to be safe just in case.
|
|
||||||
inputStream = new BufferedInputStream(socket.getInputStream());
|
|
||||||
|
|
||||||
int buflen = 100;
|
int buflen = 100;
|
||||||
byte[] buf = new byte[buflen];
|
byte[] buf = new byte[buflen];
|
||||||
String line = "";
|
String line = "";
|
||||||
|
|
Loading…
Reference in New Issue