у нас есть два приложения, одно в Java, которое является клиентом, а другое в .Net, в котором размещается веб-служба остальных.
Приложению Java необходимо прочитать файл с одного сервера и передать содержимое в байте [] (байтовый массив) в формате запроса веб-службы .Net.Служба .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 code:
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.
. Этот API-интерфейс .Net работает нормально при вызове из другого приложения .Net, и передается байт [] (байтовый массив).
Пожалуйста, расскажите, как решить эту проблему, чтобы файл PDF был правильно отправлен и записан в коде .Net.