【问题标题】:Can't redirect this url using .NET无法使用 .NET 重定向此 URL
【发布时间】:2016-05-13 12:09:38
【问题描述】:

我想在运行时重定向下一个指向 RapidGator.Net 网址的网址:

http://r.plixid.com/r/ttPXzdeKwh0sfj2GWGfRC7L9O21r1ReLf2qeVlTXshrh91fikTYJbROyL9cuTNeu-qEDByV0epF-aCy-iYtbFzWqKju1wWeMJlKdeC_xoISJWCBL29PdmzUgQxmuQlseKk0rweOAxp0be60xDq7vqOrXV6mCEIBp2LYtnqTFJlw4-PhfL2pXuPN4NP1pRm3Zuk43Q6-ay7Qiyf3SBlqsS6gqG-23wwkR9YImE6HtSRyinp1N0qwVf-_tK1suG2ev

问题是,当我尝试使用以下代码解决它时,会抛出 System.Net.WebException 并获得响应失败并显示 (500) Internal Server 异常消息。

VB.NET:

Public Shared Function RedirectUrl(ByVal url As String,
                                   Optional ByVal count As Integer = 1) As String

    Dim request As WebRequest

    For x As Integer = 1 To count
        request = HttpWebRequest.Create(url)
        Using response As WebResponse = request.GetResponse()
            If response.ResponseUri.AbsoluteUri.Equals(url) Then
                Exit For
            Else
                url = response.ResponseUri.AbsoluteUri
            End If
        End Using
    Next x

    Return url

End Function

C#:

public static string RedirectUrl(string url, int count = 1) {
    WebRequest request = default(WebRequest);
    for (int x = 1; x <= count; x++) {
        request = HttpWebRequest.Create(url);
        using (WebResponse response = request.GetResponse()) {
            if (response.ResponseUri.AbsoluteUri.Equals(url)) {
                break; // TODO: might not be correct. Was : Exit For
            } else {
                url = response.ResponseUri.AbsoluteUri;
            }
        }
    }
    return url;
}

我尝试解析指向 novafile.com url 的不同 url,在这种情况下我可以成功重定向它。

http://r.plixid.com/r/JS5CYuD8rZJkU0spAuekKCnUNR63kfnDsJn_YOP8uuoyBuNB-SBB4M9Ji6qS7xp7-InjyqlPySAG1lGm93wrjyIORDehlV6qNweipO8VmQJA7fM1gm3Lz10_fIjZBuKqEU3zQNHOPpKJI8K980o-3Q..

那么为什么我不能重定向指向 RapidGator.net 的 url,以及如何修复它(在 C# 或 VB.NET 中)?。

【问题讨论】:

  • 这些网址是否指向您的服务器/应用程序?如果是这样,那么它对我有用,他们两个......
  • 加密网址取自第 3 方 plixid.com 网站。指向 rapidgator.net 站点的 crpted url 可以使用网络浏览器完美重定向,但不能像我尝试的那样从 .NET 代码重定向。

标签: c# .net vb.net http httpwebrequest


【解决方案1】:

rapidgator 的问题在于正确的标题。您可以使用 WebClient 或 HttpWebRequest 并尝试使用适当的标头或只是模拟 UserAgent ,它会工作

享受吧!

    public static string RedirectUrl(string url, int count = 1)
    {
        HttpWebRequest request; //Was WebRequest

        for (int x = 1; x <= count; x++)
        {
            request = (HttpWebRequest)HttpWebRequest.Create(url);
            request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2";
            using (WebResponse response = request.GetResponse())
            {
                if (response.ResponseUri.AbsoluteUri.Equals(url))
                {
                    break; // TODO: might not be correct. Was : Exit For
                }
                else
                {
                    url = response.ResponseUri.AbsoluteUri;
                }
            }
        }
        return url;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    • 2013-05-08
    • 2013-06-03
    • 1970-01-01
    • 2014-05-29
    相关资源
    最近更新 更多