C# 物理设备和模拟器上的WebClient出现故障
更新: 也许只是我不明白oAuth是如何工作的?我试着跑步 手动打开查询,我得到一个400错误 也在那里!只是想确定一下,我在这里构建的URL是否正确 发布URL: 从缓冲区中获取的访问代码,以 1/]&授权类型=授权代码 原职: 我正在构建一个Windows Phone应用程序,它需要使用来自网站的数据。该网站使用oAuth对用户进行身份验证 我使用内置的web浏览器控件发出GET请求来验证用户。官方文档要求URL结构如下: 明白了吗? 客户端\u id=& 重定向\u uri=& 响应类型=代码 我的应用程序的这一部分工作正常。尽管在将授权令牌从服务器交换为访问令牌时,我面临着一些问题。官方文档要求URL结构如下: 邮寄? 客户端\u id=& 客户端\u机密=& 重定向\u uri=& 代码=& 授权类型=授权代码 如果我错了,请纠正我,但据我所知,除非提交表单,否则无法从浏览器发出POST请求。因此,我决定使用WebClient类向服务器提交数据。但是,无论我是在实际设备上还是在Visual studio emulator上运行代码,我始终会收到以下错误: 远程服务器返回错误:NotFound 有人知道下面的代码有什么问题吗?我花了两天5个多小时试图解决这个错误,但似乎没有任何效果 我正在使用的代码:C# 物理设备和模拟器上的WebClient出现故障,c#,windows-phone-7,post,oauth,webclient,C#,Windows Phone 7,Post,Oauth,Webclient,更新: 也许只是我不明白oAuth是如何工作的?我试着跑步 手动打开查询,我得到一个400错误 也在那里!只是想确定一下,我在这里构建的URL是否正确 发布URL: 从缓冲区中获取的访问代码,以 1/]&授权类型=授权代码 原职: 我正在构建一个Windows Phone应用程序,它需要使用来自网站的数据。该网站使用oAuth对用户进行身份验证 我使用内置的web浏览器控件发出GET请求来验证用户。官方文档要求URL结构如下: 明白了吗? 客户端\u id=& 重定向\u uri=& 响应类型
WebClient wc = new WebClient();
wc.UploadStringCompleted += new UploadStringCompletedEventHandler(wc_UploadStringCompleted);
wc.UploadStringAsync(new Uri(access_token_url), "POST", GetPostParameters());
void wc_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e)
{
try
{
MessageBox.Show(e.Result);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
string GetPostParameters()
{
string data = "";
data += "client_id="+client_id + "&";
data += "client_secret=" +client_secret + "&";
data += "redirect_uri=" + redirect_uri+ "&";
data += "code=" + App.AccessToken + "&";
data += "grant_type=authorization_code";
return data;
}
有人知道怎么了吗?这让我发疯了,真的很遗憾oauth如此复杂,而现在它是一种如此常用的技术
提前感谢。您可以尝试对重定向uri变量进行URL编码吗?谢谢您的回复。我尝试将代码更改为此,但仍然得到完全相同的错误:data+=redirect\u uri=+HttpUtility.urlencodereirect\u uri+&;我刚刚更新了OP,你觉得你可以快速看一下吗?你没有在更新的帖子中编码你的URL。编码的URL应该是http%3A%2F%2Fapps.joel murphy.com%2ffuffer%2Fcode%2Fsuccess.php这里有一些OAuth包装器可以简化整个过程-可能值得使用类似的东西来解决签名问题。我现在检查一下,并很快报告:我在解决方案中添加了OAuthWebRequest类,但是,它包含99个错误,我不知道如何修复:无论如何,谢谢