IEnumerator SendGetRequest(string requestURL, Action <HTTPResponse> success, Action fail) { using (UnityWebRequest www = UnityWebRequest.Get(HTTPNetworkConstant.serverURL + requestURL)) { yield return(www.SendWebRequest()); long code = www.responseCode; HTTPResponseMessage message = JsonUtility.FromJson <HTTPResponseMessage>(www.downloadHandler.text); if (www.isNetworkError) { NetworkErrorHandler(); fail(); } else if (www.isHttpError) { HTTPErrorHandler(code, message.message); fail(); } else { Dictionary <string, string> headers = www.GetResponseHeaders(); HTTPResponse response = new HTTPResponse(code, message.message, headers); success(response); } } }
//Dectinary IEnumerator SendPostRequest(string data, string requestURL, Action <HTTPResponse> success, Action fail) { //서버와 약속한 건 post이지만 현재는 문제가 많아 put으로 선언 //using 문으로 선언하여 동작하는 범위를 지정할 수 있다. using (UnityWebRequest www = UnityWebRequest.Put(HTTPNetworkConstant.serverURL + requestURL, data)) { www.method = "Post"; www.SetRequestHeader("Content-Type", "application/json"); string sid = PlayerPrefs.GetString("sid", ""); { if (sid != "") { www.SetRequestHeader("Set-Cookie", sid); } } //보내기, sendWebRequest를 하면서 다른일을 하게 만들어줌 yield return(www.SendWebRequest()); long code = www.responseCode; //www.responseCode는 long 타입 , 응답에대한 코드 HTTPResponseMessage message = JsonUtility.FromJson <HTTPResponseMessage>(www.downloadHandler.text); // 서버 > 클라이언트로 응답(Response) 메시지 도착 if (www.isNetworkError) { NetworkErrorHandler(); fail(); } else if (www.isHttpError) { HTTPErrorHandler(code, message.message); fail(); } else { Dictionary <string, string> header = www.GetResponseHeaders();// 헤더 정보, 세션아이디 포함 HTTPResponse response = new HTTPResponse(code, message.message, header); success(response); } } }
IEnumerator SendPostRequest(string data, string requestURL, Action <HTTPResponse> success, Action fail) { using (UnityWebRequest www = UnityWebRequest.Put(HTTPNetworkConstant.serverURL + requestURL, data)) { www.method = "Post"; www.SetRequestHeader("Content-Type", "application/json"); string sid = PlayerPrefs.GetString("sid", ""); if (sid != "") { www.SetRequestHeader("Set-Cookie", sid); } yield return(www.SendWebRequest()); long code = www.responseCode; HTTPResponseMessage message = JsonUtility.FromJson <HTTPResponseMessage>(www.downloadHandler.text); if (www.isNetworkError) { NetworkErrorHandler(); fail(); } else if (www.isHttpError) { HTTPErrorHandler(code, message.message); fail(); } else { Dictionary <string, string> headers = www.GetResponseHeaders(); HTTPResponse response = new HTTPResponse(code, message.message, headers); success(response); } } }