c# - 403 禁止 Unity3D C#

标签 c# unity-game-engine web

我一直在尝试从此链接获取信息:隐藏

这是我当前的代码

public static string newsLink = "HIDDEN";
public static readonly List<string> newsList = new List<string>();

void Start () {
    DontDestroyOnLoad (gameObject);
    StartCoroutine (GetNews ());
}

IEnumerator GetNews(){
    WWW w = new WWW (newsLink);
    yield return w;
    if (w.error != null) {
        print (w.error);
    } else {
        List<string>temp = w.text.Split (']').ToList ();
        foreach(string a in temp)
        {
            newsList.Add (a);
        }
        w.Dispose ();
    }
  }
}

在调试器中我收到 403 Forbidden 的错误消息

最佳答案

您发出请求的网址要求您提供用户代理来识别您的身份。您可能需要其他 header 才能获得适当的响应,但需要 User-Agent header 来删除服务器抛出的 403 错误。

创建用户代理(假装是 Chrome)

string userAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36";
Dictionary<string, string> ht = new Dictionary<string, string>();
ht["User-Agent"] = userAgent;

然后创建带有 header 的 WWW 请求

WWW w = new WWW(newsLink, null, ht);
yield return w;

请注意,您最终可能会收到 Html 和 Javascript 代码,而不是从网络浏览器访问链接时收到的消息。那是因为你的客户端(Unity)不支持Javascript,无法执行你的Javascript代码。你必须用php重写服务器代码。最后,使用 json 而不是 ]| 来分隔消息。

关于c# - 403 禁止 Unity3D C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50690807/

相关文章:

c# - GZipStream zip文件无效或损坏

c# - 使用 Code First EF4.1 保存时如何将默认值添加到属性?

c# - Unity3D : List returns null when accessed from other class

c# - 在 Unity 中使用 Google Cardboard 进行运动

c# - 通过 ASP.NET MVC 中的自定义操作过滤器重定向到自定义 View

unity-game-engine - 如何使用 Photon Engine 阻止特定用户进行随机匹配?

html - 将 html 中的悬停消息悬停在按钮上

php - 使用PHP自动打印网页

testing - 关于网站 3rd 方 QA 的建议

c# - 对 .Net 应用程序设置框架感到困惑