2017-10-13 6 views
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입니다. 미리 감사드립니다.

+0

https://stackoverflow.com/questions/40032082/http-date-header-is-missing-in-unitywebrequest – hellyale

답변

2

오류를 발견했습니다. 누군가가 발생 같은 문제는 단지 다음과 같은 변수를 변경하는 경우 :

headers["Date"] = date; 

headers["date"] = date; 

에를이 내 문제를 해결하고 내 시간을 저장. 친애하는.

+0

덕분에 친구, 단합에서 구입 한 퀴즈 템플릿을 수정하는 동안 방금 많은 시간을 절약했습니다.) – Chelseawillrecover

관련 문제