403 Forbidden Unity3D C#

时间:2018-06-05 01:27:53

标签: c# unity3d web

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

这是我目前的代码

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

的错误消息

1 个答案:

答案 0 :(得分:3)

您提出要求的网址要求您提供用户代理以确定您的身份。您可能需要其他标头才能获得相应的响应,但需要User-Agent标头来删除服务器抛出的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;

然后使用标题

创建WWW请求
WWW w = new WWW(newsLink, null, ht);
yield return w;

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

相关问题