我需要从已使用 JAVA 加密的 url 下载加密的 xml 二进制文件。我已经设法在 JAVA 中加密文件,然后将文件添加到我的 WP7 项目中并使用 c# 解密并将文件成功读入我的应用程序。
我现在需要将文件存储在 Web 服务器上,以便应用程序可以访问它,我发现下载文件时文件不完整或格式不正确,并且解密不起作用。
我试过同时使用 WebClient 和 HttpWebRequest 并且都给了我相同的结果。xml 编码文件大约 17000 字节,但是从这两种方法下载的文件返回一个大约 16000 字节长的文件。我认为下载的文件缺少行尾字符,但我无法验证这一点。我现在用来下载文件的代码非常简单,如下所示:
private void GetFile()
{
WebClient client = new WebClient();
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
String url = "http://url/encodedfile.txt";
client.DownloadStringAsync(new Uri(url));
}
void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
string s = e.Result;
byte[] encodedFile = System.Text.Encoding.UTF8.GetBytes(e.result);
//decrypt file....
查看加密数据,它们看起来非常相似,但encodedFile 的长度不是原始加密文件的正确长度。我已经对此进行了调试,并将encodedFile 中的字符复制到TextPad 中,全部放在一行上。我不确定这是否是问题,但我到处查看如何下载二进制文件,大多数建议是使用 HttpWebRequest 但我得到完全相同的结果,所以我认为这不是问题。
任何帮助都得到了重视。