[英]The remote server returned an error: (400) Bad Request. When try to login with facebook in asp.net
我嘗試用我的網站中具有Facebook帳戶的用戶登錄,但是該應用程序給我以下錯誤:遠程服務器返回錯誤:(400)錯誤的請求。
下面是我的代碼:
public string WebRequest(Method method, string url, string postData)
{
HttpWebRequest webRequest = null;
StreamWriter requestWriter = null;
string responseData = "";
webRequest = System.Net.WebRequest.Create(url) as HttpWebRequest;
webRequest.Method = method.ToString();
webRequest.ServicePoint.Expect100Continue = false;
webRequest.UserAgent = "[You user agent]";
webRequest.Timeout = 50000;
if (method == Method.POST)
{
webRequest.ContentType = "application/x-www-form-urlencoded";
//POST the data.
requestWriter = new StreamWriter(webRequest.GetRequestStream());
try
{
requestWriter.Write(postData);
}
catch
{
throw;
}
finally
{
requestWriter.Close();
requestWriter = null;
}
}
responseData = WebResponseGet(webRequest);
webRequest = null;
return responseData;
}
* 這種方法給我錯誤: *
public string WebResponseGet(HttpWebRequest webRequest)
{
StreamReader responseReader = null;
string responseData = "";
try
{
responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream());
responseData = responseReader.ReadToEnd();
}
catch
{
throw;
}
finally
{
webRequest.GetResponse().GetResponseStream().Close();
responseReader.Close();
responseReader = null;
}
return responseData;
}
自從Iv's與webRequest一起玩以來已經有一段時間了,但是我認為您的問題可能是
webRequest.GetResponse().GetResponseStream().Close();
在最后一塊。 既然你已經打過電話
webRequest.GetResponse().GetResponseStream()
在try塊的主體中。 文檔狀態:
GetResponse方法將請求發送到Internet資源,並返回WebResponse實例。 如果已經通過調用GetRequestStream發起了請求,則GetResponse方法將完成請求並返回任何響應。
因此,當我閱讀它時,響應已經在try塊中返回了,然后當您在finally塊中再次調用它時,它失敗了……因為它已經被檢索到了。 只需注釋掉那條線,然后查看您的進展即可。 當您關閉StreamReader時,應關閉其基礎連接。
因此,請嘗試:
public string WebResponseGet(HttpWebRequest webRequest)
{
StreamReader responseReader = null;
string responseData = "";
try
{
responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream());
responseData = responseReader.ReadToEnd();
}
catch
{
throw;
}
finally
{
responseReader.Close();
}
return responseData;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.