Xamarin.Auth无法通过交换授权码来解析JSON领英OAuth2访问令牌请求



在将Xamarin.Auth移植到Windows8的过程中,我遇到了以下问题。当尝试使用OAuth2向LinkedIn进行身份验证并通过交换授权码请求访问令牌时https://developer.linkedin.com/documents/authentication,Xamarin.Auth试图将结果(JSON对象)解析为url格式的字符串。在RequestAccessTokenAsync(OAuth2Authenticator.cs)中,有以下代码

var text = task1.Result.GetResponseText(); [JSON object]
var data = WebEx.FormDecode(text);

我是不是错过了什么?这是Xamarin.Auth代码中的错误吗?在这种情况下,所有基于OAuth2的网站都会返回JSON对象吗?如果不是,除了尝试在结果本身中寻找指标外,如何确定结果的格式类型?

更新:

我编辑了GetResponseText扩展以返回内容类型,在本例中为application/json,并使用json.Net来解析json,因为框架中的GetValueFromJson函数不适用于本场景中返回的json。

在使用这个框架工作了几天后;贝塔";版本,我将不得不对它进行广泛的修改,以便它可以在Win8、WP8、iOS和Android上移植。

例如,W8中不支持Expect100Continue,必须删除HttpWebRequest并替换为HttpClient。

例如,领英需要设置一个标头才能返回Json,这些类型的选项需要对框架的调用方可用。

例如,需要根据相关规范完成ContentType解析。

我相信您的源Xamarin.Auth已经过时了。一个月前,Auth获得了处理JSON身份验证令牌响应的能力:https://github.com/xamarin/Xamarin.Auth/commit/f21773a52f58b9d82f3adf38acba509fa0e9aecc#L3L311

此库的问题最好报告为以下问题:https://github.com/xamarin/xamarin.auth/issues

例如,W8中不支持Expect100Continue,必须删除HttpWebRequest并替换为HttpClient。

上周我推送了一个experimental-winphone分支,它添加了一个Windows Phone 8库,并用HttpClient替换了核心,以正确支持在其他平台上禁用Expect100Continue。

相关内容

  • 没有找到相关文章

最新更新