我需要從已使用JAVA加密的URL下載加密的xml二進制文件。我設法用JAVA加密文件,然後將文件添加到我的WP7項目中,並使用c#解密併成功將文件讀入我的應用程序。使用C#Windows Phone下載加密的二進制文件缺少數據
我需要現在將文件存儲在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,但我得到完全相同的結果,所以我不認爲這是問題所在。
任何幫助appreaciated。
檢查網絡服務器是否返回了正確的「Content-Length」標題? 「 – Sarim
」是一個加密的xml二進制文件,來自使用JAVA加密的url。「我們需要看到一些java代碼,如果你需要幫助 –
你有沒有嘗試'client.DownloadDataAsync'?看來你試圖讀取加密的二進制數據作爲字符串。 – I4V