1

これは私が使用しているコードです:

private bool CheckPartialDL(String url)
{
    HttpWebRequest hwr = (HttpWebRequest)WebRequest.Create(url);
    hwr.Method = "HEAD";
    hwr.AddRange(0);

    try
    {
        HttpWebResponse hwbresp = (HttpWebResponse)hwr.GetResponse();
        if (hwbresp.StatusCode == HttpStatusCode.PartialContent)
        {
            hwbresp.Close();
            return true;
        }

    }//end of try

    catch (WebException wbe)
    {
        MessageBox.Show(wbe.Message, "Error");
    }//end of catch

    return false;

}//end of Check

しかし、サーバーは次のエラーを返しました。

リモートサーバーがエラーを返しました:(416)要求された範囲が満たされていません。

次のファイルフォームをダウンロードします。

http://windowsclient.net/sitefiles/1000/wpf/videos/source-code/creatingavideoapp-part1.zip

IDMを使用して再開機能を確認したところ、idmはそれが利用可能であることを示しました。

では、提示されたコードのどこが間違っているのでしょうか。

4

2 に答える 2

1

質問が数年前のものであることは知っていますが、まったく同じ問題(および同様のコード)が発生したばかりで、「Method = 'HEAD'」と AddRange() の両方を削除することはできないという問題があるようですAddRange の呼び出しは正常に機能します。

編集 - この投稿はそれを確認します:

「サーバーは、GET 以外のリクエスト メソッドで受信した Range ヘッダー フィールドを無視する必要があります」

于 2014-11-19T15:05:27.587 に答える