如何在使用OAuth2Request发出请求后返回一个值

本文关键字:返回 一个 请求 OAuth2Request | 更新日期: 2023-09-27 17:50:15

我试图返回一个对象的值,但它返回null,但是它在请求中返回一个值。

using System;
using Xamarin.Auth;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
using System.Linq;
using Xamarin.Forms;
namespace RegistroAgil_Couchbase.Droid
{
    public class UserInfoRepository
    {
        public OAuthUserInfo Get()
        {
            var mainActivity = Forms.Context as MainActivity;
            var accounts = AccountStore.Create(mainActivity).FindAccountsForService("Facebook");
            var enumerable = accounts as IList<Account> ?? accounts.ToList();
            var account = enumerable.FirstOrDefault () == null ? null : enumerable.First ();
            if (account == null) {
                return null;
            } else {
                var request = new OAuth2Request ("GET", new Uri ("https://graph.facebook.com/me"), null, account);
                JObject obj = new JObject ();
                request.GetResponseAsync ().ContinueWith (t => {
                    if (t.IsFaulted)
                        Console.WriteLine ("Error: " + t.Exception.InnerException.Message);
                    else {
                        obj = JObject.Parse (t.Result.GetResponseText ());
                        Console.WriteLine(obj["name"]); // <-- Here returns a value.
                    }
                });
                return new OAuthUserInfo {
                    AuthName = (string)obj ["name"] // <-- Returns null.
                };
            }
        }
    }
}
我真的很感激任何人能提供的任何帮助。提前感谢!

如何在使用OAuth2Request发出请求后返回一个值

1.

var waitEvent = new AutoResetEvent(false);

前行

request.GetResponseAsync ().ContinueWith (t => {

2。

waitEvent.Set();

obj = JObject.Parse (t.Result.GetResponseText ());

3。

waitEvent.WaitOne();

之前
return new OAuthUserInfo {

方法应该是

public async Task<OAuthUserInfo> Get()

和调用请求

var object = await request.GetResponseAsync ();
相关文章: