示例#1
0
        /// <summary>
        /// 통신 처리를 위한 코루틴
        /// </summary>
        /// <param name="www">HTTP 요청시에 사용했던 WWW 객체</param>
        /// <returns></returns>
        private IEnumerator WaitForRequest(WWW www, StubDelegate stub)
        {
            // 응답이 올떄까지 기다림
            yield return(www);

            // HTTP Request 가 실패 함
            if (www.error != null)
            {
                // RequestError 델리게이트가 세팅 되어 있지 않았을 때 처리
                Debug.Assert(OnRequestError != null, "RequestError 델리게이트가 설정 되어 있지 않음");

                // 콜백
                OnRequestError(www);
            }

            if (stub != null)
            {
                stub(www.text);
            }
            else
            {
                Debug.Assert(OnNoStub != null, "NoStub 델리게이트가 설정 되어 있지 않음");
                OnNoStub(www);
            }

            // 통신 해제
            www.Dispose();
        }
示例#2
0
        /// <summary>
        /// HTTP POST 방식 통신 (json 데이터를 사용한다.)
        /// </summary>
        /// <param name="uri">요청 되는 엔드 포인트 URI</param>
        /// <param name="jsonData">HTTP Body에 실릴 Serialize된 json 데이터</param>
        public void HttpPostWithJson(string uri, string jsonData, StubDelegate stub)
        {
            // 스텁 설정이 되어 있지 않으면 exception을 throw 한다.
            if (stub == null)
            {
                throw new System.Exception("Stub은 반드시 설정 해야 합니다.");
            }

            Dictionary <string, string> header = new Dictionary <string, string>();

            header.Add("Content-Type", "application/json");
            WWW w = new WWW(uri, Encoding.UTF8.GetBytes(jsonData.ToCharArray()), header);

            StartCoroutine(WaitForRequest(w, stub));
        }