private void PostLogin(PostLoginBody body)
    {
        IDisposable query = ObservableWWW.Post(endpoint.GetEndpointPostLogin(),
                                               networkHelper.ConvertPostBodyToByteArray(body),
                                               networkHelper.GetDefaultPostHeader(), null)
                            .DelaySubscription(System.DateTimeOffset.Now.Add(TimeSpan.FromSeconds(callDelay)))
                            .CatchIgnore((WWWErrorException error) => {
            GenericErrorResponse errorResponse =
                networkHelper.ConvertStringToJsonObject <GenericErrorResponse>(error.Text);
            LogUtil.PrintWarning(GetType(), "PostLogin() CATCH IGNORE GenericErrorResponse: " + errorResponse.error);
        })
                            .Subscribe(
            tokenString => {
            Token tokenObject = networkHelper.ConvertStringToJsonObject <Token>(tokenString);
            LogUtil.PrintInfo(GetType(), "PostLogin() " + tokenObject.token);
        }
//				,
//				error => {
//					LogUtil.PrintWarning(GetType(), "PostLogin() " + error.Message);
//
//					GenericErrorResponse errorResponse = JsonUtility.FromJson<GenericErrorResponse>((error as WWWErrorException).Text);
//					LogUtil.PrintWarning(GetType(), "PostLogin() CATCH IGNORE GenericErrorResponse: " + errorResponse.error);
//				}
            );

        compositeDisposable.Add(query);
    }
    public void PostLogin_Failure()
    {
        PostLoginBody failureBody = new PostLoginBody();

        failureBody.email = "peter@klaven";

        PostLogin(failureBody);
    }
    public void PostLogin_Success()
    {
        PostLoginBody successBody = new PostLoginBody();

        successBody.email    = "peter@klaven";
        successBody.password = "******";

        PostLogin(successBody);
    }