如何在Unity3D游戏中设置授权标题?

时间:2014-05-08 11:19:38

标签: c# unity3d

我遇到了一些问题,我正在尝试向Unity中的服务器发送Authorization标头。我已经在我的Windows Phone项目中完成了这项工作,我正在移植到Unity但是当我将请求发送到我的服务器时,它返回500 Internal Server Error

这是我打电话的代码:

    string hash = Helper.GetHashString(); 

    byte[] toEncodeAsBytes = System.Text.Encoding.UTF8.GetBytes(username + ":" + password);
    string base64 = System.Convert.ToBase64String(toEncodeAsBytes); 

    Hashtable headers = new Hashtable();
    headers["Authorization"] = "Basic " + base64; 

    StartCoroutine(Server.Authorize(Config.SERVER_URL + "/Auth/" + hash, LoginEventResponse, headers));

Server.Authorize:

public static IEnumerator Authorize(string path, DelegateEventFunction myEvent, Hashtable headers)
{
    WWW www = new WWW(SERVER_URL + path, null, headers); 

    yield return www;

当www返回时,我得到如上所述的错误(500)。我正在移植并正在运行的代码是:

            string hash = Helper.GetHashString(); 

            byte[] toEncodeAsBytes = System.Text.Encoding.UTF8.GetBytes(Model.Username + ":" + Model.Password);
            string base64 = Convert.ToBase64String(toEncodeAsBytes); 

            HttpClient loginClient = new HttpClient();
            loginClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", base64); 

            string loginResponse = await loginClient.GetStringAsync(Config.SERVER_URL + "/Auth/" + hash);

除了Unity使用WWW而不是HttpClient之外,它们非常相似。也许这可以通过购买PRO版本来解决,让我可以使用本机库,但是除了这个之外,我尝试在Authorization标题中发送每个网络连接。 有人有提示吗?

修改

我从日志中得到了这个:

Error X-Token: chars_and_numbers,,chars_and_numbers2
Error Exception: Sequence contains no elements in System.Core

Google表示编码有些问题?我使用相同的方法,一直是UTF8 ......

0 个答案:

没有答案