401UnauthorizeduseofYahooOAuth我下面的代码每次都返回401Unauthorized错误:HttpWebRequestrequest=(HttpWebRequest)HttpWebRequest.Create("http://query.yahooapis.com/v1/yql?q=select%20fields.value%20from%20social.contacts%20where%20guid%3Dme&diagnostics=false");request.Headers.Add("授权:OAuth"+"realm=""+"yahooapis.com"+"","+"oauth_consumer_key=""+ConfigurationManager.AppSettings["yahoo_oauth_consumer_key"]+"","+"oauth_nonce=""+Guid.NewGuid().ToString()+"","+"oauth_signature_method=""+"PLAINTEXT"+"","+"oauth_timestamp=""+((DateTime.UtcNow.Ticks-新DateTime(1970,1,1).Ticks)/(1000*10000)).ToString()+"","+"oauth_token=""+accessToken.TokenValue+"","+"oauth_version="1.0"+"","+"oauth_signature=""+ConfigurationManager.AppSettings["yahoo_oauth_signature"]+"%26"+""");StreamReaderstreamReader=newStreamReader(request.GetResponse().GetResponseStream(),true);每次我输入代码,我所看到的只是雅虎请求在标头中,但每次我得到这个401我相信你知道,401意味着未授权。这可能意味着您的签名无效。您没有发布所有代码,但我看不到它如何正确生成正确的签名,因为您的签名方法似乎没有采用任何参数——最显着的是时间戳和随机数——作为输入。如果您正确计算了签名,那么您需要在Authorized标头中使用完全相同的时间戳和随机数;使用不同的签名将意味着签名无效。好的,第一:http://www.youtube.com/watch?v=lZLP0siJI-8&feature=related第二,解决方案;不要从本地主机运行它:P我在注册Yahoo时应该仔细阅读,我第二次注册此注册仅供查看,它清楚地说明了您将从哪个域调用我们的API。我遇到了同样的事情......你必须仔细阅读规范:http://developer.yahoo.com/oauth/guide/oauth-requesttoken.html仔细按照每个字段的说明进行操作。例如,我没有看到您指定oauth_callback="oob"。我也错过了这个领域,一旦我指定了它,我就拿回了令牌。我希望它能帮助别人。Yahoo以小写形式存储域,而我在回调变量中以混合大小写形式存储域。所以我将域名全部转为小写,并加上“www”作为前缀。这让我解决了这个问题。尝试点击Yahoo!使用来自任何浏览器的最终OAUTHURL服务器来查看实际的错误消息。在应用程序中它只是说“未经授权”。以上就是C#学习教程:401未经授权使用YahooOAuth分享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
