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.Sigh !!! 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.