You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by TANAKA Yuui <yu...@marineroad.com> on 2003/03/07 03:22:08 UTC

Problem with MultipartPostMethod via HTTPS

I tried to send a file to a servlet with MultipartPostMethod via HTTPS,
then I get:

java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(SocketInputStream.java:168)
	at com.sun.net.ssl.internal.ssl.InputRecord.a(DashoA6275)
	at com.sun.net.ssl.internal.ssl.InputRecord.read(DashoA6275)
	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
	at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA6275)
	at java.io.FilterInputStream.read(FilterInputStream.java:111)
	at org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputStream.java:142)
	at java.io.FilterInputStream.read(FilterInputStream.java:90)
	at org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputStream.java:161)
	at org.apache.commons.httpclient.HttpMethodBase.getResponseBody(HttpMethodBase.java:667)
	at org.apache.commons.httpclient.methods.GetMethod.getResponseBody(GetMethod.java:293)
	at org.apache.commons.httpclient.HttpMethodBase.getResponseBodyAsString(HttpMethodBase.java:717)
	at Main.sendFile(Main.java:89)


Here is the code:

HttpClient httpClient = new HttpClient();
HostConfiguration hostConfig = httpClient.getHostConfiguration();
hostConfig.setHost("192.168.0.3", 443, "https");

MultipartPostMethod multipartPostMethod = new MultipartPostMethod();
multipartPostMethod.setPath("/hogecontext/upload");

File file = new File("/var/tmp/hoge.xml");
String fileName = file.getName();

try {
  FilePart filePart = new FilePart(fileName, fileName, file);
} catch (FileNotFoundException e) {
  e.printStackTrace();
}

int statusCode = -1;
String str = null;
try {
  statusCode = httpClient.executeMethod(multipartPostMethod);
  str = multipartPostMethod.getResponseBodyAsString();    // Line: 89
} catch (HttpException e) {
  e.printStackTrace();
} finally {
  multipartPostMethod.releaseConnection();
}


Sending via HTTP is OK, but Sending via HTTPS caused the error.
What is the proper way to get MultipartPost via HTTPS working?


--
Marineroad Inc. / TANAKA Yuui <yu...@marineroad.com>


Re: Problem with MultipartPostMethod via HTTPS

Posted by TANAKA Yuui <yu...@marineroad.com>.
Thank you for your quick reply.

I tried the latest HttpClient from CVS, but failed. And I did on another
machine, then I got the same result. As you point out the problem may be
occurred in the server side. The processing library for file upload is
Jakarta Commons FileUpload 1.0 and I run it on Tomcat 3.2.4 with SSL.
I'll take a look at them.

Thanks,

Yuui


--
Marineroad Inc. / TANAKA Yuui <yu...@marineroad.com>


> I'm not exactly sure what's going wrong here.  It seems that the  
> connection is being closed/reused on the either the client or server  
> side before the entire response is read.  I tried your code on my  
> machine at home and it worked well.  I am guessing the problem is  
> either with the version of HttpClient you have or the server that's  
> processing the file upload.  Can you try this again with the latest  
> HttpClient code from CVS?
> 
> Thanks,
> 
> Mike


Re: Problem with MultipartPostMethod via HTTPS

Posted by Michael Becke <be...@u.washington.edu>.
I'm not exactly sure what's going wrong here.  It seems that the  
connection is being closed/reused on the either the client or server  
side before the entire response is read.  I tried your code on my  
machine at home and it worked well.  I am guessing the problem is  
either with the version of HttpClient you have or the server that's  
processing the file upload.  Can you try this again with the latest  
HttpClient code from CVS?

Thanks,

Mike

On Thursday, March 6, 2003, at 10:04 PM, TANAKA Yuui wrote:

> Sorry, the code I wrote in my previous post is just an example I edit.
>
> Here is the real code:
>
> public class Main {
>
> 	String host = "192.168.0.52";
> 	
> 	String scheme = "https";
> 	
> 	int port = 443;
> 	
> 	String fileSendUrl = "/order/test";
> 	
> 	File[] files = {
> 		new File("F:\\materials\\sessionid\\order.xml"),
> 	};
> 	
> 	public void run() {
> 		
> 		long startTime = System.currentTimeMillis();
> 		try {
> 			System.out.println("URL: " + sendFile());
> 		} catch (IOException e) {
> 			e.printStackTrace();
> 		}
> 		long finishTime = System.currentTimeMillis();
> 		System.out.println("Time: " + (double)((finishTime - startTime) /  
> 1000.0) + " (sec)");
> 		
> 	}
> 	
> 	public String sendFile() throws IOException {
> 		HttpClient httpClient = new HttpClient();
> 		HostConfiguration hostConfig = httpClient.getHostConfiguration();
> 		hostConfig.setHost(host, port, scheme);
> 		
> 		MultipartPostMethod multipartPostMethod = new MultipartPostMethod();
> 		multipartPostMethod.setPath(fileSendUrl);
> 		
> 		multipartPostMethod.addParameter("phase", "send");
> 		
> 		try {
> 			FilePart filePart = new FilePart(files[0].getName(),  
> files[0].getName(), files[0]);
> 			multipartPostMethod.addPart(filePart);
> 		} catch (FileNotFoundException e) {
> 			e.printStackTrace();
> 		}
> 		
> 		int statusCode = -1;
> 		String str = null;
> 		try {
> 			statusCode = httpClient.executeMethod(multipartPostMethod);
> 			str = multipartPostMethod.getResponseBodyAsString();
>
> 		} catch (HttpException e) {
> 			e.printStackTrace();
> 		} finally {
> 			multipartPostMethod.releaseConnection();
> 		}
> 		
> 		return str;
> 	}
> 	
> 	public static void main(String[] args) {
> 		System.setProperty("org.apache.commons.logging.Log",  
> "org.apache.commons.logging.impl.SimpleLog");
> 		 
> System.setProperty("org.apache.commons.logging.simplelog.showdatetime", 
>  "true");
> 		 
> System.setProperty("org.apache.commons.logging.simplelog.log.httpclient 
> .wire ", "debug");
> 		 
> System.setProperty("org.apache.commons.logging.simplelog.log.org.apache 
> .commons.httpclient", "trace");
> 		
> 		Main main = new Main();
> 		main.run();
> 	}
>
> }
>
>
>
> Result:
>
> 2003/03/07 11:52:31:692 JST [TRACE] MultipartPostMethod - -enter  
> addParameter(String parameterName, String parameterValue)
> 2003/03/07 11:52:31:712 JST [TRACE] StringPart - -enter  
> StringPart(String, String, String)
> 2003/03/07 11:52:31:712 JST [TRACE] FilePart - -enter FilePart(String,  
> PartSource, String, String)
> 2003/03/07 11:52:31:722 JST [TRACE] MultipartPostMethod - -enter  
> addPart(Part part)
> 2003/03/07 11:52:31:722 JST [TRACE] HttpClient - -enter  
> HttpClient.executeMethod(HttpMethod)
> 2003/03/07 11:52:31:722 JST [TRACE] HttpClient - -enter  
> HttpClient.executeMethod(HostConfiguration,HttpMethod)
> 2003/03/07 11:52:31:742 JST [DEBUG] HttpConnection -  
> -HttpConnectionManager.getConnection:  creating  connection for  
> 192.168.0.52:443 via null:-1 using protocol: https:443
> 2003/03/07 11:52:31:742 JST [DEBUG] HttpConnection -  
> -HttpConnection.setSoTimeout(0)
> 2003/03/07 11:52:31:742 JST [TRACE] HttpConnection - -enter  
> HttpConnection.open()
> 2003/03/07 11:52:36:909 JST [TRACE] HttpMethod - -enter  
> HttpMethodBase.execute(HttpState, HttpConnection)
> 2003/03/07 11:52:36:919 JST [TRACE] Authenticator - -enter  
> Authenticator.authenticate(HttpMethod, HttpState)
> 2003/03/07 11:52:36:919 JST [TRACE] Authenticator - -enter  
> Authenticator.authenticate(HttpMethod, HttpState, Header, String)
> 2003/03/07 11:52:36:919 JST [DEBUG] HttpMethod - -Execute loop try 1
> 2003/03/07 11:52:36:919 JST [TRACE] HttpMethod - -enter  
> HttpMethodBase.processRequest(HttpState, HttpConnection)
> 2003/03/07 11:52:36:929 JST [TRACE] HttpMethod - -Attempt number 1 to  
> write request
> 2003/03/07 11:52:36:929 JST [TRACE] HttpMethod - -enter  
> HttpMethodBase.writeRequest(HttpState, HttpConnection)
> 2003/03/07 11:52:36:929 JST [TRACE] HttpMethod - -enter  
> HttpMethodBase.writeRequestLine(HttpState, HttpConnection)
> 2003/03/07 11:52:36:929 JST [TRACE] HttpMethod - -enter  
> HttpMethodBase.generateRequestLine(HttpConnection, String, String,  
> String, String)
> 2003/03/07 11:52:36:959 JST [TRACE] HttpConnection - -enter  
> HttpConnection.print(String)
> 2003/03/07 11:52:36:959 JST [TRACE] HttpConnection - -enter  
> HttpConnection.write(byte[])
> 2003/03/07 11:52:36:959 JST [TRACE] HttpConnection - -enter  
> HttpConnection.write(byte[], int, int)
> 2003/03/07 11:52:37:270 JST [TRACE] HttpMethod - -enter  
> HttpMethodBase.writeRequestHeaders(HttpState,HttpConnection)
> 2003/03/07 11:52:37:270 JST [TRACE] MultipartPostMethod - -enter  
> MultipartPostMethod.addRequestHeaders(HttpState state, HttpConnection  
> conn)
> 2003/03/07 11:52:37:270 JST [TRACE] HttpMethod - -enter  
> HttpMethodBase.addRequestHeaders(HttpState, HttpConnection)
> 2003/03/07 11:52:37:270 JST [TRACE] HttpMethod - -enter  
> HttpMethodBase.addUserAgentRequestHeaders(HttpState, HttpConnection)
> 2003/03/07 11:52:37:270 JST [TRACE] HttpMethod - -enter  
> HttpMethodBase.addHostRequestHeader(HttpState, HttpConnection)
> 2003/03/07 11:52:37:270 JST [DEBUG] HttpMethod - -Adding Host request  
> header
> 2003/03/07 11:52:37:270 JST [TRACE] HttpMethod - -enter  
> HttpMethodBase.addCookieRequestHeader(HttpState, HttpConnection)
> 2003/03/07 11:52:37:290 JST [TRACE] HttpState - -enter  
> HttpState.getCookies()
> 2003/03/07 11:52:37:300 JST [TRACE] CookieSpec - -enter  
> CookieSpecBase.match(String, int, String, boolean, Cookie[])
> 2003/03/07 11:52:37:300 JST [TRACE] HttpMethod - -enter  
> HttpMethodBase.addAuthorizationRequestHeader(HttpState, > HttpConnection)
> 2003/03/07 11:52:37:300 JST [TRACE] HttpMethod - -enter  
> HttpMethodBase.addProxyAuthorizationRequestHeader(HttpState,  
> HttpConnection)
> 2003/03/07 11:52:37:300 JST [TRACE] HttpMethod - -enter  
> HttpMethodBase.addContentLengthRequestHeader(HttpState, > HttpConnection)
> 2003/03/07 11:52:37:300 JST [TRACE] MultipartPostMethod - -enter  
> MultipartPostMethod.getRequestContentLength()
> 2003/03/07 11:52:37:300 JST [TRACE] Part - -getLengthOfParts(Parts[])
> 2003/03/07 11:52:37:300 JST [TRACE] Part - -enter length()
> 2003/03/07 11:52:37:300 JST [TRACE] Part - -enter  
> sendStart(OutputStream out)
> 2003/03/07 11:52:37:300 JST [TRACE] Part - -enter  
> sendDispositionHeader(OutputStream out)
> 2003/03/07 11:52:37:310 JST [TRACE] Part - -enter  
> sendContentTypeHeader(OutputStream out)
> 2003/03/07 11:52:37:310 JST [TRACE] Part - -enter  
> sendTransferEncodingHeader(OutputStream out)
> 2003/03/07 11:52:37:310 JST [TRACE] Part - -enter  
> sendEndOfHeader(OutputStream out)
> 2003/03/07 11:52:37:310 JST [TRACE] Part - -enter sendEnd(OutputStream  
> out)
> 2003/03/07 11:52:37:310 JST [TRACE] StringPart - -enter lengthOfData()
> 2003/03/07 11:52:37:310 JST [TRACE] Part - -enter length()
> 2003/03/07 11:52:37:310 JST [TRACE] Part - -enter  
> sendStart(OutputStream out)
> 2003/03/07 11:52:37:310 JST [TRACE] FilePart - -enter  
> sendDispositionHeader(OutputStream out)
> 2003/03/07 11:52:37:310 JST [TRACE] Part - -enter  
> sendDispositionHeader(OutputStream out)
> 2003/03/07 11:52:37:320 JST [TRACE] Part - -enter  
> sendContentTypeHeader(OutputStream out)
> 2003/03/07 11:52:37:320 JST [TRACE] Part - -enter  
> sendTransferEncodingHeader(OutputStream out)
> 2003/03/07 11:52:37:320 JST [TRACE] Part - -enter  
> sendEndOfHeader(OutputStream out)
> 2003/03/07 11:52:37:320 JST [TRACE] Part - -enter sendEnd(OutputStream  
> out)
> 2003/03/07 11:52:37:320 JST [TRACE] FilePart - -enter lengthOfData()
> 2003/03/07 11:52:37:320 JST [TRACE] HttpConnection - -enter  
> HttpConnection.print(String)
> 2003/03/07 11:52:37:320 JST [TRACE] HttpConnection - -enter  
> HttpConnection.write(byte[])
> 2003/03/07 11:52:37:330 JST [TRACE] HttpConnection - -enter  
> HttpConnection.write(byte[], int, int)
> 2003/03/07 11:52:37:330 JST [TRACE] HttpConnection - -enter  
> HttpConnection.print(String)
> 2003/03/07 11:52:37:330 JST [TRACE] HttpConnection - -enter  
> HttpConnection.write(byte[])
> 2003/03/07 11:52:37:330 JST [TRACE] HttpConnection - -enter  
> HttpConnection.write(byte[], int, int)
> 2003/03/07 11:52:37:330 JST [TRACE] HttpConnection - -enter  
> HttpConnection.print(String)
> 2003/03/07 11:52:37:330 JST [TRACE] HttpConnection - -enter  
> HttpConnection.write(byte[])
> 2003/03/07 11:52:37:330 JST [TRACE] HttpConnection - -enter  
> HttpConnection.write(byte[], int, int)
> 2003/03/07 11:52:37:330 JST [TRACE] HttpConnection - -enter  
> HttpConnection.print(String)
> 2003/03/07 11:52:37:340 JST [TRACE] HttpConnection - -enter  
> HttpConnection.write(byte[])
> 2003/03/07 11:52:37:340 JST [TRACE] HttpConnection - -enter  
> HttpConnection.write(byte[], int, int)
> 2003/03/07 11:52:37:340 JST [TRACE] HttpConnection - -enter  
> HttpConnection.print(String)
> 2003/03/07 11:52:37:340 JST [TRACE] HttpConnection - -enter  
> HttpConnection.write(byte[])
> 2003/03/07 11:52:37:340 JST [TRACE] HttpConnection - -enter  
> HttpConnection.write(byte[], int, int)
> 2003/03/07 11:52:37:350 JST [TRACE] HttpConnection - -enter  
> HttpConnection.writeLine()
> 2003/03/07 11:52:37:350 JST [TRACE] MultipartPostMethod - -enter  
> MultipartPostMethod.writeRequestBody(HttpState state, HttpConnection  
> conn)
> 2003/03/07 11:52:37:350 JST [DEBUG] MultipartPostMethod - -Expecting  
> response
> 2003/03/07 11:52:37:350 JST [TRACE] HttpConnection - -enter  
> HttpConnection.waitForResponse(int)
> 2003/03/07 11:52:40:354 JST [DEBUG] HttpConnection - -Waiting for  
> response timeout
> 2003/03/07 11:52:40:354 JST [DEBUG] HttpMethod - -Response not  
> available. Send the request body
> 2003/03/07 11:52:40:354 JST [TRACE] HttpMethod - -enter  
> writeRemainingRequestBody(HttpState, HttpConnection)
> 2003/03/07 11:52:40:354 JST [TRACE] MultipartPostMethod - -enter  
> MultipartPostMethod.writeRequestBody(HttpState state, HttpConnection  
> conn)
> 2003/03/07 11:52:40:354 JST [TRACE] HttpConnection - -enter  
> HttpConnection.getRequestOutputStream()
> 2003/03/07 11:52:40:354 JST [TRACE] Part - -enter  
> sendParts(OutputStream out, Parts[])
> 2003/03/07 11:52:40:354 JST [TRACE] Part - -enter send(OutputStream  
> out)
> 2003/03/07 11:52:40:354 JST [TRACE] Part - -enter  
> sendStart(OutputStream out)
> 2003/03/07 11:52:40:354 JST [TRACE] Part - -enter  
> sendDispositionHeader(OutputStream out)
> 2003/03/07 11:52:40:354 JST [TRACE] Part - -enter  
> sendContentTypeHeader(OutputStream out)
> 2003/03/07 11:52:40:364 JST [TRACE] Part - -enter  
> sendTransferEncodingHeader(OutputStream out)
> 2003/03/07 11:52:40:364 JST [TRACE] Part - -enter  
> sendEndOfHeader(OutputStream out)
> 2003/03/07 11:52:40:364 JST [TRACE] StringPart - -enter  
> sendData(OutputStream)
> 2003/03/07 11:52:40:364 JST [TRACE] Part - -enter sendEnd(OutputStream  
> out)
> 2003/03/07 11:52:40:364 JST [TRACE] Part - -enter send(OutputStream  
> out)
> 2003/03/07 11:52:40:364 JST [TRACE] Part - -enter  
> sendStart(OutputStream out)
> 2003/03/07 11:52:40:374 JST [TRACE] FilePart - -enter  
> sendDispositionHeader(OutputStream out)
> 2003/03/07 11:52:40:374 JST [TRACE] Part - -enter  
> sendDispositionHeader(OutputStream out)
> 2003/03/07 11:52:40:374 JST [TRACE] Part - -enter  
> sendContentTypeHeader(OutputStream out)
> 2003/03/07 11:52:40:374 JST [TRACE] Part - -enter  
> sendTransferEncodingHeader(OutputStream out)
> 2003/03/07 11:52:40:374 JST [TRACE] Part - -enter  
> sendEndOfHeader(OutputStream out)
> 2003/03/07 11:52:40:374 JST [TRACE] FilePart - -enter  
> sendData(OutputStream out)
> 2003/03/07 11:52:40:374 JST [TRACE] FilePart - -enter lengthOfData()
> 2003/03/07 11:52:40:374 JST [TRACE] Part - -enter sendEnd(OutputStream  
> out)
> 2003/03/07 11:52:40:384 JST [TRACE] HttpMethod - -enter  
> HttpMethodBase.readResponse(HttpState, HttpConnection)
> 2003/03/07 11:52:40:384 JST [TRACE] HttpMethod - -enter  
> HttpMethodBase.readStatusLine(HttpState, HttpConnection)
> 2003/03/07 11:52:40:384 JST [TRACE] HttpConnection - -enter  
> HttpConnection.readLine()
> 2003/03/07 11:52:40:384 JST [TRACE] HttpParser - -enter  
> HttpConnection.readLine()
> 2003/03/07 11:52:40:394 JST [TRACE] HttpParser - -enter  
> HttpConnection.readRawLine()
> 2003/03/07 11:52:40:394 JST [TRACE] HttpMethod - -enter  
> HttpMethodBase.readResponseHeaders(HttpState,HttpConnection)
> 2003/03/07 11:52:40:394 JST [TRACE] HttpConnection - -enter  
> HttpConnection.getResponseInputStream()
> 2003/03/07 11:52:40:394 JST [TRACE] HttpParser - -enter  
> HeaderParser.parseHeaders(HttpConnection, HeaderGroup)
> 2003/03/07 11:52:40:394 JST [TRACE] HttpParser - -enter  
> HttpConnection.readLine()
> 2003/03/07 11:52:40:404 JST [TRACE] HttpParser - -enter  
> HttpConnection.readRawLine()
> 2003/03/07 11:52:40:404 JST [TRACE] HttpParser - -enter  
> HttpConnection.readLine()
> 2003/03/07 11:52:40:404 JST [TRACE] HttpParser - -enter  
> HttpConnection.readRawLine()
> 2003/03/07 11:52:40:404 JST [TRACE] HttpParser - -enter  
> HttpConnection.readLine()
> 2003/03/07 11:52:40:404 JST [TRACE] HttpParser - -enter  
> HttpConnection.readRawLine()
> 2003/03/07 11:52:40:404 JST [TRACE] HttpParser - -enter  
> HttpConnection.readLine()
> 2003/03/07 11:52:40:404 JST [TRACE] HttpParser - -enter  
> HttpConnection.readRawLine()
> 2003/03/07 11:52:40:404 JST [TRACE] HttpParser - -enter  
> HttpConnection.readLine()
> 2003/03/07 11:52:40:404 JST [TRACE] HttpParser - -enter  
> HttpConnection.readRawLine()
> 2003/03/07 11:52:40:414 JST [TRACE] HttpParser - -enter  
> HttpConnection.readLine()
> 2003/03/07 11:52:40:414 JST [TRACE] HttpParser - -enter  
> HttpConnection.readRawLine()
> 2003/03/07 11:52:40:414 JST [TRACE] HttpMethod - -enter  
> HttpMethodBase.processResponseHeaders(HttpState, HttpConnection)
> 2003/03/07 11:52:40:414 JST [TRACE] CookieSpec - -enter  
> CookieSpecBase.parse(String, port, path, boolean, String)
> 2003/03/07 11:52:40:414 JST [TRACE] CookieSpec - -enter  
> CookieSpecBase.parse(String, port, path, boolean, Header)
> 2003/03/07 11:52:40:424 JST [TRACE] HeaderElement - -enter  
> HeaderElement.parse(String)
> 2003/03/07 11:52:40:424 JST [TRACE] HeaderElement - -enter  
> HeaderElement.parsePair(char[], int, int)
> 2003/03/07 11:52:40:424 JST [TRACE] HeaderElement - -enter  
> HeaderElement.parsePair(char[], int, int)
> 2003/03/07 11:52:40:424 JST [TRACE] HeaderElement - -enter  
> HeaderElement.parsePair(char[], int, int)
> 2003/03/07 11:52:40:424 JST [TRACE] HeaderElement - -enter  
> HeaderElement.parsePair(char[], int, int)
> 2003/03/07 11:52:40:474 JST [TRACE] Cookie - -enter Cookie(String,  
> String, String, String, Date, boolean)
> 2003/03/07 11:52:40:474 JST [DEBUG] CookieSpec - -Unrecognized cookie  
> attribute: name=Discard, value=null
> 2003/03/07 11:52:40:474 JST [TRACE] CookieSpec - -enter  
> RFC2109Spec.validate(String, int, String, boolean, Cookie)
> 2003/03/07 11:52:40:484 JST [TRACE] CookieSpec - -enter  
> CookieSpecBase.validate(String, port, path, boolean, Cookie)
> 2003/03/07 11:52:40:484 JST [TRACE] HttpState - -enter  
> HttpState.addCookie(Cookie)
> 2003/03/07 11:52:40:484 JST [TRACE] CookieSpec - -enter  
> RFC2109Spec.formatCookie(Cookie)
> 2003/03/07 11:52:40:484 JST [TRACE] CookieSpec - -enter  
> RFC2109Spec.formatCookieAsVer(Cookie)
> 2003/03/07 11:52:40:484 JST [DEBUG] HttpMethod - -Cookie accepted:  
> "$Version="1"; JSESSIONID="ncj1a1hb11"; $Path="/order""
> 2003/03/07 11:52:40:484 JST [TRACE] GetMethod - -enter  
> GetMethod.readResponseBody(HttpState, HttpConnection)
> 2003/03/07 11:52:40:484 JST [TRACE] HttpMethod - -enter  
> HttpMethodBase.readResponseBody(HttpState, HttpConnection)
> 2003/03/07 11:52:40:484 JST [TRACE] HttpMethod - -enter  
> HttpMethodBase.readResponseBody(HttpState, HttpConnection)
> 2003/03/07 11:52:40:484 JST [TRACE] HttpConnection - -enter  
> HttpConnection.getResponseInputStream()
> 2003/03/07 11:52:40:484 JST [TRACE] HttpMethod - -enter  
> HttpMethodBase.canResponseHaveBody(int)
> 2003/03/07 11:52:40:495 JST [TRACE] GetMethod - -enter  
> GetMethod.getResponseBody()
> 2003/03/07 11:52:40:495 JST [TRACE] GetMethod - -enter  
> GetMethod.getResponseBodyAsStream()
> java.net.SocketException: Connection reset
> 	at java.net.SocketInputStream.read(SocketInputStream.java:168)
> 	at com.sun.net.ssl.internal.ssl.InputRecord.a(DashoA6275)
> 	at com.sun.net.ssl.internal.ssl.InputRecord.read(DashoA6275)
> 	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
> 	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
> 	at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA6275)
> 	at java.io.FilterInputStream.read(FilterInputStream.java:111)
> 	at  
> org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputS 
> tream.java:142)
> 	at java.io.FilterInputStream.read(FilterInputStream.java:90)
> 	at  
> org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputS 
> tream.java:161)
> 	at  
> org.apache.commons.httpclient.HttpMethodBase.getResponseBody(HttpMethod 
> Base.java:667)
> 	at  
> org.apache.commons.httpclient.methods.GetMethod.getResponseBody(GetMeth 
> od.java:293)
> 	at  
> org.apache.commons.httpclient.HttpMethodBase.getResponseBodyAsString(Ht 
> tpMethodBase.java:717)
> 	at Main.sendFile(Main.java:79)
> 	at Main.run(Main.java:49)
> 	at Main.main(Main.java:97)
> 2003/03/07 11:52:40:495 JST [ERROR] HttpMethod - -getResponseBody  
> failed <java.net.SocketException: Connection reset>
> 2003/03/07 11:52:40:515 JST [DEBUG] HttpMethod - -Should close  
> connection since using HTTP/1.0.
> 2003/03/07 11:52:40:515 JST [TRACE] HttpConnection - -enter  
> HttpConnection.close()
> 2003/03/07 11:52:40:515 JST [TRACE] HttpConnection - -enter  
> HttpConnection.closeSockedAndStreams()
> 2003/03/07 11:52:40:515 JST [TRACE] HttpConnection - -enter  
> HttpConnection.releaseConnection()
> URL: null
> Time: 9.053 (sec)
>
>
>
>
> --
> Marineroad Inc. / TANAKA Yuui <yu...@marineroad.com>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:  
> commons-httpclient-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail:  
> commons-httpclient-dev-help@jakarta.apache.org
>


Re: Problem with MultipartPostMethod via HTTPS

Posted by TANAKA Yuui <yu...@marineroad.com>.
Sorry, the code I wrote in my previous post is just an example I edit.

Here is the real code:

public class Main {

	String host = "192.168.0.52";
	
	String scheme = "https";
	
	int port = 443;
	
	String fileSendUrl = "/order/test";
	
	File[] files = {
		new File("F:\\materials\\sessionid\\order.xml"),
	};
	
	public void run() {
		
		long startTime = System.currentTimeMillis();
		try {
			System.out.println("URL: " + sendFile());
		} catch (IOException e) {
			e.printStackTrace();
		}
		long finishTime = System.currentTimeMillis();
		System.out.println("Time: " + (double)((finishTime - startTime) / 1000.0) + " (sec)");
		
	}
	
	public String sendFile() throws IOException {
		HttpClient httpClient = new HttpClient();
		HostConfiguration hostConfig = httpClient.getHostConfiguration();
		hostConfig.setHost(host, port, scheme);
		
		MultipartPostMethod multipartPostMethod = new MultipartPostMethod();
		multipartPostMethod.setPath(fileSendUrl);
		
		multipartPostMethod.addParameter("phase", "send");
		
		try {
			FilePart filePart = new FilePart(files[0].getName(), files[0].getName(), files[0]);
			multipartPostMethod.addPart(filePart);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		
		int statusCode = -1;
		String str = null;
		try {
			statusCode = httpClient.executeMethod(multipartPostMethod);
			str = multipartPostMethod.getResponseBodyAsString();

		} catch (HttpException e) {
			e.printStackTrace();
		} finally {
			multipartPostMethod.releaseConnection();
		}
		
		return str;
	}
	
	public static void main(String[] args) {
		System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog");
		System.setProperty("org.apache.commons.logging.simplelog.showdatetime", "true");
		System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire ", "debug");
		System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient", "trace");
		
		Main main = new Main();
		main.run();
	}

}



Result:

2003/03/07 11:52:31:692 JST [TRACE] MultipartPostMethod - -enter addParameter(String parameterName, String parameterValue)
2003/03/07 11:52:31:712 JST [TRACE] StringPart - -enter StringPart(String, String, String)
2003/03/07 11:52:31:712 JST [TRACE] FilePart - -enter FilePart(String, PartSource, String, String)
2003/03/07 11:52:31:722 JST [TRACE] MultipartPostMethod - -enter addPart(Part part)
2003/03/07 11:52:31:722 JST [TRACE] HttpClient - -enter HttpClient.executeMethod(HttpMethod)
2003/03/07 11:52:31:722 JST [TRACE] HttpClient - -enter HttpClient.executeMethod(HostConfiguration,HttpMethod)
2003/03/07 11:52:31:742 JST [DEBUG] HttpConnection - -HttpConnectionManager.getConnection:  creating  connection for 192.168.0.52:443 via null:-1 using protocol: https:443
2003/03/07 11:52:31:742 JST [DEBUG] HttpConnection - -HttpConnection.setSoTimeout(0)
2003/03/07 11:52:31:742 JST [TRACE] HttpConnection - -enter HttpConnection.open()
2003/03/07 11:52:36:909 JST [TRACE] HttpMethod - -enter HttpMethodBase.execute(HttpState, HttpConnection)
2003/03/07 11:52:36:919 JST [TRACE] Authenticator - -enter Authenticator.authenticate(HttpMethod, HttpState)
2003/03/07 11:52:36:919 JST [TRACE] Authenticator - -enter Authenticator.authenticate(HttpMethod, HttpState, Header, String)
2003/03/07 11:52:36:919 JST [DEBUG] HttpMethod - -Execute loop try 1
2003/03/07 11:52:36:919 JST [TRACE] HttpMethod - -enter HttpMethodBase.processRequest(HttpState, HttpConnection)
2003/03/07 11:52:36:929 JST [TRACE] HttpMethod - -Attempt number 1 to write request
2003/03/07 11:52:36:929 JST [TRACE] HttpMethod - -enter HttpMethodBase.writeRequest(HttpState, HttpConnection)
2003/03/07 11:52:36:929 JST [TRACE] HttpMethod - -enter HttpMethodBase.writeRequestLine(HttpState, HttpConnection)
2003/03/07 11:52:36:929 JST [TRACE] HttpMethod - -enter HttpMethodBase.generateRequestLine(HttpConnection, String, String, String, String)
2003/03/07 11:52:36:959 JST [TRACE] HttpConnection - -enter HttpConnection.print(String)
2003/03/07 11:52:36:959 JST [TRACE] HttpConnection - -enter HttpConnection.write(byte[])
2003/03/07 11:52:36:959 JST [TRACE] HttpConnection - -enter HttpConnection.write(byte[], int, int)
2003/03/07 11:52:37:270 JST [TRACE] HttpMethod - -enter HttpMethodBase.writeRequestHeaders(HttpState,HttpConnection)
2003/03/07 11:52:37:270 JST [TRACE] MultipartPostMethod - -enter MultipartPostMethod.addRequestHeaders(HttpState state, HttpConnection conn)
2003/03/07 11:52:37:270 JST [TRACE] HttpMethod - -enter HttpMethodBase.addRequestHeaders(HttpState, HttpConnection)
2003/03/07 11:52:37:270 JST [TRACE] HttpMethod - -enter HttpMethodBase.addUserAgentRequestHeaders(HttpState, HttpConnection)
2003/03/07 11:52:37:270 JST [TRACE] HttpMethod - -enter HttpMethodBase.addHostRequestHeader(HttpState, HttpConnection)
2003/03/07 11:52:37:270 JST [DEBUG] HttpMethod - -Adding Host request header
2003/03/07 11:52:37:270 JST [TRACE] HttpMethod - -enter HttpMethodBase.addCookieRequestHeader(HttpState, HttpConnection)
2003/03/07 11:52:37:290 JST [TRACE] HttpState - -enter HttpState.getCookies()
2003/03/07 11:52:37:300 JST [TRACE] CookieSpec - -enter CookieSpecBase.match(String, int, String, boolean, Cookie[])
2003/03/07 11:52:37:300 JST [TRACE] HttpMethod - -enter HttpMethodBase.addAuthorizationRequestHeader(HttpState, HttpConnection)
2003/03/07 11:52:37:300 JST [TRACE] HttpMethod - -enter HttpMethodBase.addProxyAuthorizationRequestHeader(HttpState, HttpConnection)
2003/03/07 11:52:37:300 JST [TRACE] HttpMethod - -enter HttpMethodBase.addContentLengthRequestHeader(HttpState, HttpConnection)
2003/03/07 11:52:37:300 JST [TRACE] MultipartPostMethod - -enter MultipartPostMethod.getRequestContentLength()
2003/03/07 11:52:37:300 JST [TRACE] Part - -getLengthOfParts(Parts[])
2003/03/07 11:52:37:300 JST [TRACE] Part - -enter length()
2003/03/07 11:52:37:300 JST [TRACE] Part - -enter sendStart(OutputStream out)
2003/03/07 11:52:37:300 JST [TRACE] Part - -enter sendDispositionHeader(OutputStream out)
2003/03/07 11:52:37:310 JST [TRACE] Part - -enter sendContentTypeHeader(OutputStream out)
2003/03/07 11:52:37:310 JST [TRACE] Part - -enter sendTransferEncodingHeader(OutputStream out)
2003/03/07 11:52:37:310 JST [TRACE] Part - -enter sendEndOfHeader(OutputStream out)
2003/03/07 11:52:37:310 JST [TRACE] Part - -enter sendEnd(OutputStream out)
2003/03/07 11:52:37:310 JST [TRACE] StringPart - -enter lengthOfData()
2003/03/07 11:52:37:310 JST [TRACE] Part - -enter length()
2003/03/07 11:52:37:310 JST [TRACE] Part - -enter sendStart(OutputStream out)
2003/03/07 11:52:37:310 JST [TRACE] FilePart - -enter sendDispositionHeader(OutputStream out)
2003/03/07 11:52:37:310 JST [TRACE] Part - -enter sendDispositionHeader(OutputStream out)
2003/03/07 11:52:37:320 JST [TRACE] Part - -enter sendContentTypeHeader(OutputStream out)
2003/03/07 11:52:37:320 JST [TRACE] Part - -enter sendTransferEncodingHeader(OutputStream out)
2003/03/07 11:52:37:320 JST [TRACE] Part - -enter sendEndOfHeader(OutputStream out)
2003/03/07 11:52:37:320 JST [TRACE] Part - -enter sendEnd(OutputStream out)
2003/03/07 11:52:37:320 JST [TRACE] FilePart - -enter lengthOfData()
2003/03/07 11:52:37:320 JST [TRACE] HttpConnection - -enter HttpConnection.print(String)
2003/03/07 11:52:37:320 JST [TRACE] HttpConnection - -enter HttpConnection.write(byte[])
2003/03/07 11:52:37:330 JST [TRACE] HttpConnection - -enter HttpConnection.write(byte[], int, int)
2003/03/07 11:52:37:330 JST [TRACE] HttpConnection - -enter HttpConnection.print(String)
2003/03/07 11:52:37:330 JST [TRACE] HttpConnection - -enter HttpConnection.write(byte[])
2003/03/07 11:52:37:330 JST [TRACE] HttpConnection - -enter HttpConnection.write(byte[], int, int)
2003/03/07 11:52:37:330 JST [TRACE] HttpConnection - -enter HttpConnection.print(String)
2003/03/07 11:52:37:330 JST [TRACE] HttpConnection - -enter HttpConnection.write(byte[])
2003/03/07 11:52:37:330 JST [TRACE] HttpConnection - -enter HttpConnection.write(byte[], int, int)
2003/03/07 11:52:37:330 JST [TRACE] HttpConnection - -enter HttpConnection.print(String)
2003/03/07 11:52:37:340 JST [TRACE] HttpConnection - -enter HttpConnection.write(byte[])
2003/03/07 11:52:37:340 JST [TRACE] HttpConnection - -enter HttpConnection.write(byte[], int, int)
2003/03/07 11:52:37:340 JST [TRACE] HttpConnection - -enter HttpConnection.print(String)
2003/03/07 11:52:37:340 JST [TRACE] HttpConnection - -enter HttpConnection.write(byte[])
2003/03/07 11:52:37:340 JST [TRACE] HttpConnection - -enter HttpConnection.write(byte[], int, int)
2003/03/07 11:52:37:350 JST [TRACE] HttpConnection - -enter HttpConnection.writeLine()
2003/03/07 11:52:37:350 JST [TRACE] MultipartPostMethod - -enter MultipartPostMethod.writeRequestBody(HttpState state, HttpConnection conn)
2003/03/07 11:52:37:350 JST [DEBUG] MultipartPostMethod - -Expecting response
2003/03/07 11:52:37:350 JST [TRACE] HttpConnection - -enter HttpConnection.waitForResponse(int)
2003/03/07 11:52:40:354 JST [DEBUG] HttpConnection - -Waiting for response timeout
2003/03/07 11:52:40:354 JST [DEBUG] HttpMethod - -Response not available. Send the request body
2003/03/07 11:52:40:354 JST [TRACE] HttpMethod - -enter writeRemainingRequestBody(HttpState, HttpConnection)
2003/03/07 11:52:40:354 JST [TRACE] MultipartPostMethod - -enter MultipartPostMethod.writeRequestBody(HttpState state, HttpConnection conn)
2003/03/07 11:52:40:354 JST [TRACE] HttpConnection - -enter HttpConnection.getRequestOutputStream()
2003/03/07 11:52:40:354 JST [TRACE] Part - -enter sendParts(OutputStream out, Parts[])
2003/03/07 11:52:40:354 JST [TRACE] Part - -enter send(OutputStream out)
2003/03/07 11:52:40:354 JST [TRACE] Part - -enter sendStart(OutputStream out)
2003/03/07 11:52:40:354 JST [TRACE] Part - -enter sendDispositionHeader(OutputStream out)
2003/03/07 11:52:40:354 JST [TRACE] Part - -enter sendContentTypeHeader(OutputStream out)
2003/03/07 11:52:40:364 JST [TRACE] Part - -enter sendTransferEncodingHeader(OutputStream out)
2003/03/07 11:52:40:364 JST [TRACE] Part - -enter sendEndOfHeader(OutputStream out)
2003/03/07 11:52:40:364 JST [TRACE] StringPart - -enter sendData(OutputStream)
2003/03/07 11:52:40:364 JST [TRACE] Part - -enter sendEnd(OutputStream out)
2003/03/07 11:52:40:364 JST [TRACE] Part - -enter send(OutputStream out)
2003/03/07 11:52:40:364 JST [TRACE] Part - -enter sendStart(OutputStream out)
2003/03/07 11:52:40:374 JST [TRACE] FilePart - -enter sendDispositionHeader(OutputStream out)
2003/03/07 11:52:40:374 JST [TRACE] Part - -enter sendDispositionHeader(OutputStream out)
2003/03/07 11:52:40:374 JST [TRACE] Part - -enter sendContentTypeHeader(OutputStream out)
2003/03/07 11:52:40:374 JST [TRACE] Part - -enter sendTransferEncodingHeader(OutputStream out)
2003/03/07 11:52:40:374 JST [TRACE] Part - -enter sendEndOfHeader(OutputStream out)
2003/03/07 11:52:40:374 JST [TRACE] FilePart - -enter sendData(OutputStream out)
2003/03/07 11:52:40:374 JST [TRACE] FilePart - -enter lengthOfData()
2003/03/07 11:52:40:374 JST [TRACE] Part - -enter sendEnd(OutputStream out)
2003/03/07 11:52:40:384 JST [TRACE] HttpMethod - -enter HttpMethodBase.readResponse(HttpState, HttpConnection)
2003/03/07 11:52:40:384 JST [TRACE] HttpMethod - -enter HttpMethodBase.readStatusLine(HttpState, HttpConnection)
2003/03/07 11:52:40:384 JST [TRACE] HttpConnection - -enter HttpConnection.readLine()
2003/03/07 11:52:40:384 JST [TRACE] HttpParser - -enter HttpConnection.readLine()
2003/03/07 11:52:40:394 JST [TRACE] HttpParser - -enter HttpConnection.readRawLine()
2003/03/07 11:52:40:394 JST [TRACE] HttpMethod - -enter HttpMethodBase.readResponseHeaders(HttpState,HttpConnection)
2003/03/07 11:52:40:394 JST [TRACE] HttpConnection - -enter HttpConnection.getResponseInputStream()
2003/03/07 11:52:40:394 JST [TRACE] HttpParser - -enter HeaderParser.parseHeaders(HttpConnection, HeaderGroup)
2003/03/07 11:52:40:394 JST [TRACE] HttpParser - -enter HttpConnection.readLine()
2003/03/07 11:52:40:404 JST [TRACE] HttpParser - -enter HttpConnection.readRawLine()
2003/03/07 11:52:40:404 JST [TRACE] HttpParser - -enter HttpConnection.readLine()
2003/03/07 11:52:40:404 JST [TRACE] HttpParser - -enter HttpConnection.readRawLine()
2003/03/07 11:52:40:404 JST [TRACE] HttpParser - -enter HttpConnection.readLine()
2003/03/07 11:52:40:404 JST [TRACE] HttpParser - -enter HttpConnection.readRawLine()
2003/03/07 11:52:40:404 JST [TRACE] HttpParser - -enter HttpConnection.readLine()
2003/03/07 11:52:40:404 JST [TRACE] HttpParser - -enter HttpConnection.readRawLine()
2003/03/07 11:52:40:404 JST [TRACE] HttpParser - -enter HttpConnection.readLine()
2003/03/07 11:52:40:404 JST [TRACE] HttpParser - -enter HttpConnection.readRawLine()
2003/03/07 11:52:40:414 JST [TRACE] HttpParser - -enter HttpConnection.readLine()
2003/03/07 11:52:40:414 JST [TRACE] HttpParser - -enter HttpConnection.readRawLine()
2003/03/07 11:52:40:414 JST [TRACE] HttpMethod - -enter HttpMethodBase.processResponseHeaders(HttpState, HttpConnection)
2003/03/07 11:52:40:414 JST [TRACE] CookieSpec - -enter CookieSpecBase.parse(String, port, path, boolean, String)
2003/03/07 11:52:40:414 JST [TRACE] CookieSpec - -enter CookieSpecBase.parse(String, port, path, boolean, Header)
2003/03/07 11:52:40:424 JST [TRACE] HeaderElement - -enter HeaderElement.parse(String)
2003/03/07 11:52:40:424 JST [TRACE] HeaderElement - -enter HeaderElement.parsePair(char[], int, int)
2003/03/07 11:52:40:424 JST [TRACE] HeaderElement - -enter HeaderElement.parsePair(char[], int, int)
2003/03/07 11:52:40:424 JST [TRACE] HeaderElement - -enter HeaderElement.parsePair(char[], int, int)
2003/03/07 11:52:40:424 JST [TRACE] HeaderElement - -enter HeaderElement.parsePair(char[], int, int)
2003/03/07 11:52:40:474 JST [TRACE] Cookie - -enter Cookie(String, String, String, String, Date, boolean)
2003/03/07 11:52:40:474 JST [DEBUG] CookieSpec - -Unrecognized cookie attribute: name=Discard, value=null
2003/03/07 11:52:40:474 JST [TRACE] CookieSpec - -enter RFC2109Spec.validate(String, int, String, boolean, Cookie)
2003/03/07 11:52:40:484 JST [TRACE] CookieSpec - -enter CookieSpecBase.validate(String, port, path, boolean, Cookie)
2003/03/07 11:52:40:484 JST [TRACE] HttpState - -enter HttpState.addCookie(Cookie)
2003/03/07 11:52:40:484 JST [TRACE] CookieSpec - -enter RFC2109Spec.formatCookie(Cookie)
2003/03/07 11:52:40:484 JST [TRACE] CookieSpec - -enter RFC2109Spec.formatCookieAsVer(Cookie)
2003/03/07 11:52:40:484 JST [DEBUG] HttpMethod - -Cookie accepted: "$Version="1"; JSESSIONID="ncj1a1hb11"; $Path="/order""
2003/03/07 11:52:40:484 JST [TRACE] GetMethod - -enter GetMethod.readResponseBody(HttpState, HttpConnection)
2003/03/07 11:52:40:484 JST [TRACE] HttpMethod - -enter HttpMethodBase.readResponseBody(HttpState, HttpConnection)
2003/03/07 11:52:40:484 JST [TRACE] HttpMethod - -enter HttpMethodBase.readResponseBody(HttpState, HttpConnection)
2003/03/07 11:52:40:484 JST [TRACE] HttpConnection - -enter HttpConnection.getResponseInputStream()
2003/03/07 11:52:40:484 JST [TRACE] HttpMethod - -enter HttpMethodBase.canResponseHaveBody(int)
2003/03/07 11:52:40:495 JST [TRACE] GetMethod - -enter GetMethod.getResponseBody()
2003/03/07 11:52:40:495 JST [TRACE] GetMethod - -enter GetMethod.getResponseBodyAsStream()
java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(SocketInputStream.java:168)
	at com.sun.net.ssl.internal.ssl.InputRecord.a(DashoA6275)
	at com.sun.net.ssl.internal.ssl.InputRecord.read(DashoA6275)
	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
	at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA6275)
	at java.io.FilterInputStream.read(FilterInputStream.java:111)
	at org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputStream.java:142)
	at java.io.FilterInputStream.read(FilterInputStream.java:90)
	at org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputStream.java:161)
	at org.apache.commons.httpclient.HttpMethodBase.getResponseBody(HttpMethodBase.java:667)
	at org.apache.commons.httpclient.methods.GetMethod.getResponseBody(GetMethod.java:293)
	at org.apache.commons.httpclient.HttpMethodBase.getResponseBodyAsString(HttpMethodBase.java:717)
	at Main.sendFile(Main.java:79)
	at Main.run(Main.java:49)
	at Main.main(Main.java:97)
2003/03/07 11:52:40:495 JST [ERROR] HttpMethod - -getResponseBody failed <java.net.SocketException: Connection reset>
2003/03/07 11:52:40:515 JST [DEBUG] HttpMethod - -Should close connection since using HTTP/1.0.
2003/03/07 11:52:40:515 JST [TRACE] HttpConnection - -enter HttpConnection.close()
2003/03/07 11:52:40:515 JST [TRACE] HttpConnection - -enter HttpConnection.closeSockedAndStreams()
2003/03/07 11:52:40:515 JST [TRACE] HttpConnection - -enter HttpConnection.releaseConnection()
URL: null
Time: 9.053 (sec)




--
Marineroad Inc. / TANAKA Yuui <yu...@marineroad.com>


Re: Problem with MultipartPostMethod via HTTPS

Posted by Michael Becke <be...@u.washington.edu>.
Multipart posts with SSL should work.  The only strange thing I noticed  
in your example is that the file part is never added to the post  
method.  Is this what's happening in the real code?  If so, this could  
be the source of the problem.  If not, a wire log of the problem would  
help.  Take a look at  
http://jakarta.apache.org/commons/httpclient/logging.html in the  
wireLog section for more details.

Mike

On Thursday, March 6, 2003, at 09:22 PM, TANAKA Yuui wrote:

>
> I tried to send a file to a servlet with MultipartPostMethod via HTTPS,
> then I get:
>
> java.net.SocketException: Connection reset
> 	at java.net.SocketInputStream.read(SocketInputStream.java:168)
> 	at com.sun.net.ssl.internal.ssl.InputRecord.a(DashoA6275)
> 	at com.sun.net.ssl.internal.ssl.InputRecord.read(DashoA6275)
> 	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
> 	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
> 	at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA6275)
> 	at java.io.FilterInputStream.read(FilterInputStream.java:111)
> 	at  
> org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputS 
> tream.java:142)
> 	at java.io.FilterInputStream.read(FilterInputStream.java:90)
> 	at  
> org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputS 
> tream.java:161)
> 	at  
> org.apache.commons.httpclient.HttpMethodBase.getResponseBody(HttpMethod 
> Base.java:667)
> 	at  
> org.apache.commons.httpclient.methods.GetMethod.getResponseBody(GetMeth 
> od.java:293)
> 	at  
> org.apache.commons.httpclient.HttpMethodBase.getResponseBodyAsString(Ht 
> tpMethodBase.java:717)
> 	at Main.sendFile(Main.java:89)
>
>
> Here is the code:
>
> HttpClient httpClient = new HttpClient();
> HostConfiguration hostConfig = httpClient.getHostConfiguration();
> hostConfig.setHost("192.168.0.3", 443, "https");
>
> MultipartPostMethod multipartPostMethod = new MultipartPostMethod();
> multipartPostMethod.setPath("/hogecontext/upload");
>
> File file = new File("/var/tmp/hoge.xml");
> String fileName = file.getName();
>
> try {
>   FilePart filePart = new FilePart(fileName, fileName, file);
> } catch (FileNotFoundException e) {
>   e.printStackTrace();
> }
>
> int statusCode = -1;
> String str = null;
> try {
>   statusCode = httpClient.executeMethod(multipartPostMethod);
>   str = multipartPostMethod.getResponseBodyAsString();    // Line: 89
> } catch (HttpException e) {
>   e.printStackTrace();
> } finally {
>   multipartPostMethod.releaseConnection();
> }
>
>
> Sending via HTTP is OK, but Sending via HTTPS caused the error.
> What is the proper way to get MultipartPost via HTTPS working?
>
>
> --
> Marineroad Inc. / TANAKA Yuui <yu...@marineroad.com>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:  
> commons-httpclient-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail:  
> commons-httpclient-dev-help@jakarta.apache.org
>