来自 WebClient 的错误:“远程服务器返回错误:(503) 服务器不可用”

问题描述 投票:0回答:2
using (var wc = new WebClient())
{
    Uri urls = new Uri(url);
    wc.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36";
    dokuman.Load(wc.OpenRead(urls), Encoding.UTF8);
}

dokuman.Load(wc.OpenRead(urls), Encoding.UTF8);

远程服务器返回错误:(503) 服务器不可用。

有时我会收到此错误。我们该如何解决这个问题?

c# web-services webclient
2个回答
2
投票

我使用这个实用功能,它也支持代理

 public static string GetPageHtml(string link, System.Net.WebProxy proxy = null)
        {
            System.Net.WebClient client = new System.Net.WebClient() { Encoding = Encoding.UTF8 };
            client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
            if (proxy != null)
            {
                client.Proxy = proxy;
            }

            using (client)
            {
                try
                {
                    return client.DownloadString(link);
                }
                catch (Exception ex)
                {
                    return null;
                }
            }

        }

尝试一下,如果它不起作用,那么您可能被谷歌阻止了,因为您发出请求的速度很快,为了避免被阻止,您应该使用网络代理或在请求之间进行合理的暂停。

示例

var Html = GetPageHtml("https://www.google.com.tr/search?sclient=psy-ab&site=&source=hp&q=cars+&btnG=Ara");

0
投票

通过网络客户端请求上传 200 多条记录,对我来说工作正常。

© www.soinside.com 2019 - 2024. All rights reserved.