c# – 无法从RestSharp OAuth请求Windows Phone 8.1中保存令牌
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 无法从RestSharp OAuth请求Windows Phone 8.1中保存令牌,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2198字,纯文字阅读大概需要4分钟。
内容图文
![c# – 无法从RestSharp OAuth请求Windows Phone 8.1中保存令牌](/upload/InfoBanner/zyjiaocheng/966/867156d446b6400380d86ec20690c22f.jpg)
我试图通过RestSharp从Trello获取Request Token.我只在请求线程中获得了令牌,但是无法将其保存在我的应用程序的变量中.
有一些代码:
private async void GetToken()
{
app.Client.Authenticator = OAuth1Authenticator.ForRequestToken(app.ConsumerKey, app.ConsumerSecret);
var request = new RestRequest("OAuthGetRequestToken", Method.POST);
app.Client.ExecuteAsync(request, HandleResponse);
}
private void HandleResponse(IRestResponse restResponse)
{
var Response = restResponse;
MessageBox.Show(Response.Content);
QueryString qs = new QueryString(Response.Content);
app.OAuthToken = qs["oauth_token"];
app.OAuthTokenSecret = qs["oauth_token_secret"];
app.Verifier = qs["verifier"];
MessageBox.Show(app.OAuthToken); //got token here, but after
MessageBox.Show(app.OAuthTokenSecret); //I don`t have anything in this variables
}
你有什么想法吗?
解决方法:
解决此问题的方法是创建使我能够创建同步请求的类.
有这个类的代码:
public static class RestClientExtensions
{
public static Task<IRestResponse> ExecuteTask(this IRestClient client, RestRequest request)
{
var TaskCompletionSource = new TaskCompletionSource<IRestResponse>();
client.ExecuteAsync(request, (response, asyncHandle) =>
{
if (response.ResponseStatus == ResponseStatus.Error)
TaskCompletionSource.SetException(response.ErrorException);
else
TaskCompletionSource.SetResult(response);
});
return TaskCompletionSource.Task;
}
}
现在我的代码看起来像这样:
private async void GetToken()
{
app.Client.Authenticator = OAuth1Authenticator.ForRequestToken(app.ConsumerKey, app.ConsumerSecret);
RestRequest request = new RestRequest("OAuthGetRequestToken", Method.POST);
IRestResponse restResponse = await app.Client.ExecuteTask(request);
HandleResponse(restResponse);
GetAccesToken();
}
private void HandleResponse(IRestResponse response)
{
var Response = response;
System.Diagnostics.Debug.WriteLine(Response.Content);
QueryString qs = new QueryString(Response.Content);
app.OAuthToken = qs["oauth_token"];
app.OAuthTokenSecret = qs["oauth_token_secret"];
System.Diagnostics.Debug.WriteLine(app.OAuthToken);
System.Diagnostics.Debug.WriteLine(app.OAuthTokenSecret);
}
并且在方法HandleResponse(响应)之后;执行,我在我的app类中有令牌和令牌秘密.
我仍然相信这个问题必须有更好的解决方案,但这是我所知道的唯一解决方案.
内容总结
以上是互联网集市为您收集整理的c# – 无法从RestSharp OAuth请求Windows Phone 8.1中保存令牌全部内容,希望文章能够帮你解决c# – 无法从RestSharp OAuth请求Windows Phone 8.1中保存令牌所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。