远程服务器返回错误:(400)错误请求。

时间:2012-10-05 10:33:27

标签: c# asp.net asp.net-mvc facebook httpwebrequest

我正在尝试通过Web应用程序从内部进行facebook打开图形api调用。我正在使用Web请求 像这样的C#请求。

string token = "q2Fe0utty5gzCasPL23...";
string url = "https://graph.facebook.com/me?access_token=" + 
    HttpUtility.UrlEncode(token) +"&response_type=id";

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

Stream receiveStream = response.GetResponseStream();
StreamReader readStream = newStreamReader(receiveStream,Encoding.UTF8);
string responseData = readStream.ReadToEnd();

_context.SaveChanges();

由于令牌中有一些特殊字符(+,/,==),我使用HttpUtility.UrlEncode(令牌)对其进行编码,但仍然出现以下错误。

远程服务器返回错误:(400)错误请求。

我如何解决此错误。我通过在堆栈溢出中看到一些响应来做上述事情,但仍然得到错误。我哪里出错?

1 个答案:

答案 0 :(得分:2)

  

因为令牌有一些特殊字符(+,/,==)

这听起来很奇怪......通常访问令牌包括字母,数字和管道符号。

如果您使用无效的访问令牌发出请求(不是意味着已过期,而是根本无法解码的令牌),那么您将获得400响应。

因此,请在调试工具https://developers.facebook.com/tools/debug

中检查您的令牌