我一直在尝试从此链接获取信息:隐藏
这是我当前的代码
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/