Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Findout在C中url重定向到哪里#_C#_Silverlight - Fatal编程技术网

C# Findout在C中url重定向到哪里#

C# Findout在C中url重定向到哪里#,c#,silverlight,C#,Silverlight,我有一个重定向到somesite.com/13sjd_9488.jpg的url类型的url。如何在.NET和Silverlight中从第一个url转到第二个url?您不能在客户端执行此操作,因为此重定向是在服务器端完成的,因此除非您向此url发送HTTP请求,否则无法执行此操作: var request = WebRequest.Create("http://somesite.com/photo/123"); request.BeginGetResponse(ar => { us

我有一个重定向到somesite.com/13sjd_9488.jpg的url类型的url。如何在.NET和Silverlight中从第一个url转到第二个url?

您不能在客户端执行此操作,因为此重定向是在服务器端完成的,因此除非您向此url发送HTTP请求,否则无法执行此操作:

var request = WebRequest.Create("http://somesite.com/photo/123");
request.BeginGetResponse(ar => 
{
    using (var response = ((WebRequest)ar.AsyncState).EndGetResponse(ar))
    {
        // This will point to the redirected url: 
        // http://somesite.com/13sjd_9488.jpg
        string responseUri = response.ResponseUri.AbsoluteUri;
    }
}, request);

如果您可以发送一个
HttpRequest

public static bool TryGetRedirectedUri(Uri uri, out Uri redirectedUri)
{
    var request = (HttpWebRequest)WebRequest.Create(uri);
    request.AllowAutoRedirect = false;
    using (var response = (HttpWebResponse)request.GetResponse())
    {
        if (response.StatusCode == HttpStatusCode.Moved)
        {
            redirectedUri = new Uri(response.Headers[HttpResponseHeader.Location]);
            return true;
        }

        else
        {
            redirectedUri = null;
            return false;
        }
    }
}

注意:这不包括所有情况,需要更多的健康检查。

谢谢,这正是我想要的。