POSTing a file to a web page and reading response

S

someone12345

Hi.

I'm trying to read raw data from disk, POSTING it to a site that
converts the file to another format, and then read and save the
response.

I have only found on the web information on how to post a string, not
binary data.
My code only writes the html page to file, not the response file.


This is my code so far:
----------------------
URL site = new URL("http://xxx.xxx.xxx.xxx");


URLConnection conn = site.openConnection();
conn.setDoOutput(true);
conn.setRequestProperty
("Content-Type", "multipart/form-data");
DataOutputStream dos;

OutputStream os = conn.getOutputStream();
dos = new DataOutputStream(os);
FileInputStream fis = new FileInputStream("c:\\temp\
\test.xxx");


int data;
while ((data = fis.read()) != -1) {
dos.write(data);

}
dos.flush();
DataInputStream in = new
DataInputStream(conn.getInputStream());
FileOutputStream fo = new FileOutputStream("c:\\temp\
\test.yyy");
while ((data = in.read()) != -1) {
fo.write(data);
}
fo.flush();
fo.close();
dos.close();
-----------------------
 
L

Lew

someone12345 said:
Hi.

I'm trying to read raw data from disk, POSTING it to a site that
converts the file to another format, and then read and save the
response.

I have only found on the web information on how to post a string, not
binary data.

<http://commons.apache.org/fileupload/>

The key is to set the correct content type in the <form> tag,
"multipart/form-data".
 
S

someone12345

<http://commons.apache.org/fileupload/>

The key is to set the correct content type in the <form> tag,
"multipart/form-data".

This project seems to be at the other end of what I want. I want to
create the client, not the server. I want to submit the file to the
server and read back the server's response.

This is my code so far...


/**
* Created by IntelliJ IDEA.
* User: hallgrimur
* Date: 30.8.2007
* Time: 18:34:12
* To change this template use File | Settings | File Templates.
*/

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;

public class check {
/* URL doc2pdf;*/
// URLConnection conn;

public static void main(String args[]) {
if (args.length != 0) {
System.out.println(
"Proper Usage: java FileDownloader RemoteFileURL
LocalFileName");
System.exit(0);
}

try {
URL site = new URL("http://xxx");
FileInputStream fis = new FileInputStream("c:\\temp\
\test.xxx");
);

HttpURLConnection conn = (HttpURLConnection)
site.openConnection();
conn.setRequestMethod("POST");
conn.setInstanceFollowRedirects(true);
conn.setDoOutput(true);
conn.setRequestProperty
("Content-Type", "multipart/form-data");
conn.setRequestProperty("Content-Length","24470"); //
hard coded for testing
conn.setRequestProperty("Cache-Control"," no-cache");
conn.setRequestProperty("Content-Disposition","form-data;
name=\"inputDocument\"; filename=\"test.xxx\""); //name of the submit
form action is inputdocument


DataOutputStream dos;

OutputStream os = conn.getOutputStream();
dos = new DataOutputStream(os);



int data;
while ((data = fis.read()) != -1) {
dos.write(data);

}
dos.flush();
os.flush();
dos.close();
os.close();
DataInputStream in = new
DataInputStream(conn.getInputStream());
FileOutputStream fo = new FileOutputStream("c:\\temp\
\test.yyy");
while ((data = in.read()) != -1) {
fo.write(data);
}
fo.flush();
// fo.close();
// dos.close();

}
catch (Exception e) {
e.printStackTrace();
}


}
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,009
Latest member
GidgetGamb

Latest Threads

Top