Click to See Complete Forum and Search --> : Httpclient upload: Success status but XML file is 0 KB?


ShaSha
11-10-2005, 10:59 PM
Hi, I am trying to upload XML files via HTTP to an HTTP server from java client instead of browser. On the HTTP server side, there is a Perl script that will be receiving the incoming file and files it into the designated folders in the server.When I run the Java client, I get the response Status = 200 and also uploaded replies from the Perl script but when I checked in the folder, the XML file is 0 KB. I am not sure what went wrong. Spending a few days now looking into it but no luck.
Please help shed some light. Below are the some of the codes and responses:

public class UploadXMLFile {

String sXMLFilename = "c:\\Test.xml";

PostMethod filePost1 = new PostMethod("http://000.000.000.000/cgi-bin/upload.pl");

File targetFile = new File(sXMLFilename);

Part[] parts1 = { new StringPart("filenm", sXMLFilename), new FilePart(targetFile.getName(), targetFile) };

filePost1.setRequestEntity (new MultipartRequestEntity(parts1, filePost1.getParams()));
HttpClient client = new HttpClient();
client.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
int status = client.executeMethod(filePost1);
System.out.println("Status = " + status);

if (status == HttpStatus.SC_OK)
{
System.out.println("Upload complete, response =" + filePost1.getResponseBodyAsString());
} else
{
System.out.println("Upload failed, response =" + HttpStatus.getStatusText(status));
}

filePost1.releaseConnection();

}

The perl program accepts "filenm" as a parameter when uploading the file. The response that I get is:

Status = 200
Upload complete, response =
<HTML>
<HEAD>
<TITLE>Thanks!</TITLE>
</HEAD>
<BODY>
<P>Thank you. We have received your file! Test.xml </P>
</BODY>
</HTML>

Hope someone can help me on this. Thanks in advance.

javazoom
11-11-2005, 05:53 AM
Try jClientUpload Applet to see if the problem comes from your Java code or your server-side Perl script :
http://www.javazoom.net/applets/jclientupload/jclientupload.html
The applet allows to upload any file over HTTP.

Hope it helps.

ShaSha
11-16-2005, 04:00 AM
Hi there !

Found out what was the problem. I replaced

Part[] parts1 = { new StringPart("filenm",sXMLFilename), new FilePart(targetFile.getName(),targetFile) };

with

Part[] parts1 = { new FilePart("filenm", targetFile)};

Now can post xml. Thanks for the suggestion though. Have a nice day!