29

答えはノーだと思いますが....WebClientを使用してHEADメソッドを送信し、ヘッダーを文字列などとして返す方法はありますか?

4

3 に答える 3

27

あなたは正しいですWebClientはこれをサポートしていません。この機能が必要な場合は、HttpWebRequestを使用して、メソッドをHEADに設定できます。

System.Net.WebRequest request = System.Net.WebRequest.Create(uri);
request.Method = "HEAD";
request.GetResponse();
于 2010-07-16T21:50:06.660 に答える
18

もう1つの方法は、WebClientから継承し、GetWebRequest(URIアドレス)をオーバーライドすることです。

    public class ExWebClient : WebClient
    {
        public string Method
        {
            get;
            set;
        }

        protected override WebRequest GetWebRequest(Uri address)
        {
            WebRequest webRequest = base.GetWebRequest(address);

            if (!string.IsNullOrEmpty(Method))
                webRequest.Method = Method;

            return webRequest;
        }
    }
于 2012-10-12T15:41:03.337 に答える
4

私が要求するほとんどのWebサーバーは、この方法を受け入れます。ただし、すべてのWebサーバーがそうするわけではありません。たとえば、IIS6はリクエストメソッドSOMETIMESを尊重します。

これは、メソッドが許可されていない場合に返されるステータスコードです...

catch (WebException webException)
            {
                    if (webException.Response != null)
                    {
                        //some webservers don't allow the HEAD method...
                        if (((HttpWebResponse) webException.Response).StatusCode == HttpStatusCode.MethodNotAllowed)

ありがとう、マイク

于 2012-09-19T15:55:21.697 に答える