私は C# を使用して Windows ストア アプリを開発していますが、このプラットフォームでは非常に新しいものです (私は主に IOS と Android に取り組んできました)。
リモートサーバーから生データをダウンロードする簡単な非同期メソッドがあります。WebResponse クラスからのランダムな不完全な読み取りが見られることを除けば、問題なく動作します。これは非常に単純な方法であり、なぜ途中で終了するのかわかりません。リモートサーバーは正常に動作しているため(ios/web/androidは正常に動作しており、データを取得しています)、明らかにここで何か間違ったことをしています。
この問題を解決するには、どんな助けも役に立ちます。
public async Task<byte[]> doGETRequestAsync(String url)
{
callSuccess = false;
byte[] responseFromServer = null;
try
{
WebRequest request = WebRequest.Create(url);
request.Method = "GET";
WebResponse response = await request.GetResponseAsync();
using (Stream dataStream = response.GetResponseStream())
{
responseFromServer = new byte[response.ContentLength];
int readCount = await dataStream.ReadAsync(responseFromServer, 0, (int)response.ContentLength);
if (readCount != response.ContentLength)
throw new IOException("Premature end of data. Expected: " + response.ContentLength + " received: " + readCount);
}
response.Dispose();
}
catch (HttpRequestException hre)
{
Debug.WriteLine("Exception performing network call : " + hre.ToString());
}
catch (Exception e)
{
Debug.WriteLine("Exception performing network call : " + e.ToString());
}
return responseFromServer;
}