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