Java 如何将文件上载到SOAP web服务?

Java 如何将文件上载到SOAP web服务?,java,web-services,soap,upload,Java,Web Services,Soap,Upload,我有一个.p12文件,我想上传到一个SOAPWeb服务,这样我的应用程序就可以请求以后获取它。如何上载此文件 我不一定要在我的应用程序代码中使用它,因为这是我只想做一次的事情。但是,如果有必要的话,我使用的是Java。将文件作为流读取并通过网络发送。仅此而已。如果服务支持MTOM,您应该看看它。如果它接受文件附件,那么它可能使用MTOM。不确定将其排除在应用程序代码之外是什么意思,但如何创建和发送附件取决于您使用的web服务平台。以下是关于在Java的JAX-WS中发送附件的最新文档: 如果您

我有一个.p12文件,我想上传到一个SOAPWeb服务,这样我的应用程序就可以请求以后获取它。如何上载此文件


我不一定要在我的应用程序代码中使用它,因为这是我只想做一次的事情。但是,如果有必要的话,我使用的是Java。

将文件作为流读取并通过网络发送。仅此而已。

如果服务支持MTOM,您应该看看它。如果它接受文件附件,那么它可能使用MTOM。不确定将其排除在应用程序代码之外是什么意思,但如何创建和发送附件取决于您使用的web服务平台。以下是关于在Java的JAX-WS中发送附件的最新文档:

如果您想以独立于语言的方式查看实际发生的情况,请抓取SoapUI并将其设置为使用MTOM发送附件:


在服务器端发送编码字符串和Base64.decode文件字符串


我对web服务是完全陌生的,所以虽然您所说的很有意义,而且看起来很简单,但我不知道如何实际实现它。一点代码或相关教程/文档的链接将非常有用!对不起,我不懂java,我的背景是.net。但实施应该如我所说的那样。对不起,我无能为力了-(如果这个SOAP服务还不存在,那么您为什么要使用SOAP而不是普通HTTP?如果它已经存在,那么您需要向我们提供详细信息(即它是否已经支持上载)?SOAP服务存在并支持上载。
String strAttachmentCoded = "";
private int PICK_PDF_REQUEST = 1;
Uri filePath;

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == PICK_PDF_REQUEST && resultCode == Activity.RESULT_OK && data != null && data.getData() != null) {
        filePath = data.getData();
        File uploadFile = new File(filePath.toString());
        URI uri = URI.create(uploadFile.getPath());
        try {
            if (uploadFile != null) {
                File uploadFile1 = new File(uri);
                FileInputStream objFileIS = new FileInputStream(uploadFile1);
                ByteArrayOutputStream objByteArrayOS = new ByteArrayOutputStream();
                byte[] byteBufferString = new byte[1024];
                int readNum;
                readNum = objFileIS.read(byteBufferString);
                while (readNum != -1) {
                    Log.v("  ", "" + readNum);
                    objByteArrayOS.write(byteBufferString, 0, readNum);
                    //                system.out.println("read " + readNum + " bytes,");
                    readNum = objFileIS.read(byteBufferString);
                }
                byte[] byteBinaryData = Base64.encode(objByteArrayOS.toByteArray(), Base64.DEFAULT);
                strAttachmentCoded = String.valueOf(byteBinaryData);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}