我遇到了一些问题,我正在尝试向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 ......