【问题标题】:Check uri is valid without causing it to download using HttpClient检查 uri 是否有效,而不会导致它使用 HttpClient 下载
【发布时间】:2017-05-18 21:12:33
【问题描述】:

如何在不导致客户端下载内容的情况下验证下载 uri 是否有效?

【问题讨论】:

  • 定义“uri有效”
  • 如果您要自己回答,您的答案不应该出现在问题中。
  • 其实,你的答案不应该出现在问题中。您的问题应该达到我们预期的相同质量水平。请参阅How to Ask。另请参阅help center 了解更多关于自我回答的信息。

标签: c# httpclient


【解决方案1】:
  1. 创建客户端
  2. 使用client.GetAsync(uri, HttpComplettionOption) api
  3. 使用 ResponseHeadersRead

这只会在不下载实际内容的情况下检查 uri 是否有效。

HttpClient client = new HttpClient();
var downloadUri = new Uri("https://domainame/someblobcontent.zip");
Task<HttpResponseMessage> response = null;
try
 {
       using (response = client.GetAsync(downloadUri, HttpCompletionOption.ResponseHeadersRead))
            {
                if(response.Result.IsSuccessStatusCode)
                {
                    Console.WriteLine("uri is valid, got response code {0}", response.Result.StatusCode);
                }
                else
                {
                    Console.WriteLine("uri is not valid, got response code {0}", response.Result.StatusCode);
                }
            }
  }
  catch(Exception e)
  {
      Console.WriteLine(e.ToString());
  }

【讨论】:

  • 嗯?这应该是您问题的答案吗?
  • @DigiFriend 您可以(甚至鼓励)在 Stack Overflow 上回答您自己的问题。请参阅help center 了解更多信息。有一些规则;也就是说,问题和答案的质量必须与其他问题相同。
  • @MikeMcCaughan - 当然,但这看起来像是问题的精确副本,因此我很困惑。
  • @DigiFriend 是的,这可以说是我们在自我回答问题中寻找的一个糟糕的例子:)。
猜你喜欢
  • 2011-02-24
  • 2017-05-23
  • 1970-01-01
  • 2017-06-13
  • 1970-01-01
  • 1970-01-01
  • 2011-06-17
  • 2013-02-26
  • 1970-01-01
相关资源
最近更新 更多