private void OnSendRequest() { //前回のリクエストをが処理中の場合エラー if (status == RequestStatus.Sending) { Debug.LogWarning("you cannnot sending request many times.Please wait previous request end"); return; } //リクエスト設定し、飛ばす。 request = UnityWebRequest.Get(REQUEST_URL); webRequestStatus = request.Send(); status = RequestStatus.Sending; //リクエストの結果を受け取る。 requestEvent = this.ObserveEveryValueChanged(x => x.webRequestStatus.isDone) .Where(isDone => isDone == true) .Subscribe(isDone => { if (request.isNetworkError) { //Debug.Log(request.url); Debug.LogError(request.error); status = RequestStatus.Failure; } else { if (request.responseCode == 200) { string rawJson = request.downloadHandler.text; RequestAnswerData answer = JsonUtility.FromJson <RequestAnswerData>(rawJson); SetUserID(answer.userid); status = RequestStatus.Success; } else { Debug.LogError("MakeUserIDRequest:API doesn't return responseCode 200"); status = RequestStatus.Failure; } } if (requestEvent != null) { requestEvent.Dispose(); } }); }
private void OnSendRequest(string address) { var REQUEST_URL = GOOGLE_API_URL + address; //前回のリクエストをが処理中の場合エラー if (status == RequestStatus.Sending) { Debug.LogWarning("you cannnot sending request many times.Please wait previous request end"); return; } //リクエスト設定し、飛ばす。 request = UnityWebRequest.Get(REQUEST_URL); webRequestStatus = request.Send(); status = RequestStatus.Sending; //リクエストの結果を受け取る。 requestEvent = this.ObserveEveryValueChanged(x => x.webRequestStatus.isDone) .Where(isDone => isDone == true) .Subscribe(isDone => { if (request.isNetworkError) { Debug.LogError(request.error); status = RequestStatus.Failure; } else { if (request.responseCode == 200) { string rawJson = request.downloadHandler.text; RequestAnswerData answer = JsonUtility.FromJson <RequestAnswerData>(rawJson); Debug.Log(answer.results[0].geometry.location.lat); SetAddressPosition(answer.results[0].geometry.location.lat, answer.results[0].geometry.location.lng); status = RequestStatus.Success; } else { Debug.LogError("AddressToGeometryRequest:API doesn't return responseCode 200"); status = RequestStatus.Failure; } } if (requestEvent != null) { requestEvent.Dispose(); } }); }