2012-04-24 2 views
0

Я хочу отправить pdf-файлы на URL-адрес клиента webservice, используя Java. Как это может быть сделано?Как отправить PDF-файлы на удаленный сервер с помощью Java?

+0

Какую технологию вы используете? Чистые сервлеты? Ось? JAX-WS? ... –

+0

Это очень зависит от спецификации веб-службы. –

+2

Что означает «URL-адрес клиента webservice», даже если вы хотите нажать «удаленный сервер»? Ленивые вопросы не дадут вам никаких хороших ответов. –

ответ

1

Несколько простых шагов. Я добавлю некоторые термины между скобками для googling.

  1. Открыть FileInputStream для файла pdf. (входной поток java-файла)
  2. Сообщите серверу, что вы отправите файл.
  3. Используйте буфер байта [] и заполните его из входного потока и запишите его на сервер. (буфер ввода входного потока java). Вам нужно будет сообщить серверу, какой размер имеет следующий буфер.

Вот несколько примеров кода.

InputStream in = new FileInputStream(file); 
OuputStream os = socket.getOutputStream(); 
DataOutputStream dos = new DataOutputStream(os); 
int n; 
byte[] b = new byte[1024 * 16]; 
while ((n = in.read(b)) != -1) 
{ 
    dos.writeByte(1); // tell the server a buffer is coming 
    dos.writeInt(n); // tell it the how big the buffer is 
    dos.write(b, 0, n); // write the buffer 
} 
dos.writeByte(0); // tell the server no more buffers are coming. 
dos.flush(); 

Теперь вам нужно написать серверную часть.

+0

Ну, я думаю, что это не ответ на ваш вопрос ... Я думаю, вам нужно что-то еще ... Но я не уверен, –

+0

URL и = новый URL-адрес (URL);. URLConnection УНЦ = u.openConnection(); uc.setDoOutput (истина); uc.setDoInput (истина); uc.setAllowUserInteraction (ложь) ; DataOutputStream dstream = new DataOutputStream (uc.getOutputStream()); – Sapphire

+0

Определение объекта DataOutputStream по-разному, а затем запись на него. Будет ли это работать? – Sapphire

Смежные вопросы