0
Unity를 통해 멀티 플레이어 게임을 만들려고합니다. 나는 시도 샘플 자산을 사용하고 난 아래에 오류 얻을 :InvalidOperationException : 시스템 지정 헤더를 무시할 수 없습니다.
InvalidOperationException: Cannot override system-specified headers
UnityEngine.Networking.UnityWebRequest.SetRequestHeader (System.String name, System.String value) (at C:/buildslave/unity/build/artifacts/generated/common/modules/UnityWebRequest/WebRequestBindings.gen.cs:482)
UnityEngine.WWW..ctor (System.String url, System.Byte[] postData, System.Collections.Generic.Dictionary`2 headers) (at C:/buildslave/unity/build/Runtime/WebRequestWWW/UWRWWW.cs:62)
QuizMaker.Administrator.AdminAPI+<api_call>c__Iterator0`1[QuizMaker.Administrator.CheckConnectionResponse].MoveNext() (at Assets/QuizMaker/Scripts/Administrator/AdminAPI.cs:77)
UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress) (at C:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
QuizMaker.Administrator.AdminAPI:CheckConnection(Callback`1) (at Assets/QuizMaker/Scripts/Administrator/AdminAPI.cs:227)
QuizMaker.Administrator.ServerSettingsUI:_updateServerStatus() (at Assets/QuizMaker/Scripts/Administrator/Actions/ServerSettingsUI.cs:147)
QuizMaker.Administrator.ServerSettingsUI:UpdateServerStatus() (at Assets/QuizMaker/Scripts/Administrator/Actions/ServerSettingsUI.cs:139)
QuizMaker.Administrator.ServerSettingsUI:Start() (at Assets/QuizMaker/Scripts/Administrator/Actions/ServerSettingsUI.cs:44)
내 코드 :
// create a form for a post data
WWWForm form = new WWWForm();
// create a log string
var logString = string.Format("[API_REQ {0}]", action);
// add key val if data is empty
if (data.Length == 0)
{
data = new string[] { "key", "val" };
}
// add data from an data array to the form
for (int i = 0; i < data.Length - 1; i += 2)
{
// add key and value
form.AddField(data[i], data[i + 1]);
// add log
logString += string.Format(" [{0}: {1}]", data[i], data[i + 1]);
}
// it needs to be more secure
var date = DateTime.Now.ToString();
var headers = form.headers;
headers["Date"] = date;
headers["Order"] = Util.generateOrderString(data);
form.AddField("hash", Util.generateHash(data, date));
// print log string
print(logString);
// create www request
var www = new WWW(AppConfig.Instance.serverUrl + action, form.data, headers);
// wait for a response
yield return www;
// print log for each api call
print(string.Format("[API_RES {0}] [{1}]", action, www.text));
// parse a response
parseResponse(
string.IsNullOrEmpty(www.error),
www.text,
callback
);
내가 날짜 변수를 삭제
는 오류 그러나 수정이 시간에 내가 연결할 수 없습니다를 서버에. 내 연결 방법은 REST API입니다. 미리 감사드립니다.
https://stackoverflow.com/questions/40032082/http-date-header-is-missing-in-unitywebrequest – hellyale