如何使用Java将pdf发送到远程服务器?

问题描述:

我想使用Java将pdf发送到客户端webservice url。如何才能做到这一点?如何使用Java将pdf发送到远程服务器?

+0

你使用什么技术?纯servlet?轴? JAX-WS? ... – 2012-04-24 16:00:27

+0

这非常依赖于Web服务的规范。 – 2012-04-24 16:04:14

+2

'client webservice url'甚至意味着什么,特别是考虑到你想要推送到'远程服务器'?懒惰的问题不会给你任何好的答案。 – 2012-04-24 16:04:30

几个简单的步骤。我将在括号内添加一些用于Google搜索的术语。

  1. 打开pdf文件的FileInputStream。 (java文件输入流)
  2. 告诉服务器你将发送一个文件。
  3. 使用byte []缓冲区并从输入流中填充并将其写入服务器。 (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

嗯,我认为这不是你的问题的答案...我想你想要别的东西...但我不知道 – 2012-04-24 16:22:01

+0

URL U =新的网址(URL)。 的URLConnection UC = u.openConnection(); uc.setDoOutput(真); uc.setDoInput(真); uc.setAllowUserInteraction(假) ; DataOutputStream dstream = new DataOutputStream(uc.getOutputStream()); – Sapphire 2012-04-24 16:24:06

+0

以不同的方式定义DataOutputStream对象,然后写入它,这会起作用吗? – Sapphire 2012-04-24 16:25:06