我们有两个应用程序,一个是Java客户端,另一个是.Net托管其余Web服务。
Java应用程序需要从一台服务器读取文件,并将字节[](字节数组)格式的内容传递给.Net Web服务请求。 .Net服务需要接受此请求,并使用byte [](字节数组)在另一台服务器中写入新文件。代码如下:
Java客户端代码:
private byte[] getBytesFromFiles(String path){
try{
logger.info("Accessing the document====> "+path);
File file = new File(path);
InputStream inputStream = new FileInputStream(file);
byte[] bytes = new byte[(int) file.length()];
inputStream.read(bytes);
logger.info("Byte array converted to String");
return bytes;
}catch(Exception e){
logger.info("Error at reading the document====> "+e);
//throw new RuntimeException(e);
}
return null;
}
我们在调用.Net api时传递了这些字节。
.Net api代码:
public string UploadToDBMultiClaims(string strDept, string strPolicyNo1, string strPolicyNo2, List<string> lstClaimNo, string strDocumentName,
string strFileDate, string strRemark, string strCurrentUser, byte[] btBinaryBuffer){
string strDocID = "xyz.pdf"
string path = ConfigurationManager.AppSettings["FilePath"].ToString() + DateTime.Today.ToString("yyyyMMdd") + @"\";
string fileName = path + strDocID + ".pdf";
System.IO.File.WriteAllBytes(fileName, btBinaryBuffer);
return "1"
}
But it gives HTTP Status 400 error.
当我们尝试转换为String并发送和接收它并尝试打开pdf文件时。它给出了错误
Adobe could not xyz.pdf because its either not a supported file format or the file is damaged.
当从另一个.Net应用程序调用并传递byte [](字节数组)时,此.Net api工作正常。
请说明如何解决此问题,以便正确发送pdf文件并以.Net代码编写。