gpt4 book ai didi

c# - HttpWebRequest 只是卡在一台电脑上

转载 作者:太空狗 更新时间:2023-10-29 23:07:03 25 4
gpt4 key购买 nike

我有一段代码可以执行 HttpWebRequest 到 Google 电子钱包。代码在我所有的机器上都运行良好,除了我现在正在工作的这台电脑。这台计算机上的互联网工作正常(因为我现在正在使用它来输入这个问题)而且我们没有代理服务器在工作。

问题是它只是挂起。它甚至不会超时。它只是挂起,没有任何错误消息或任何东西,我必须强行关闭它。这是代码:

    private static string GetLoginHtml()
{
var request = (HttpWebRequest)WebRequest.Create(LoginUrl);
var cookieJar = new CookieContainer();

request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.CookieContainer = cookieJar;
using (var requestStream = request.GetRequestStream())
{
string content = "Email=" + Username + "&Passwd=" + Password;
requestStream.Write(Encoding.UTF8.GetBytes(content), 0, Encoding.UTF8.GetBytes(content).Length);
using (var sr = new StreamReader(request.GetResponse().GetResponseStream()))
{
string html = sr.ReadToEnd();
string galxValue = ParseOutValue(html, "GALX");

return GetLoginHtml2(galxValue, cookieJar);
}
}
}

在 Visual Studio 调试器上单步执行代码,我知道它在遇到以下行时挂起:

using (var sr = new StreamReader(request.GetResponse().GetResponseStream()))

具体来说,request.GetResponse() 部分是悬而未决的部分。运行 Fiddler,我看到的只是一个灰色条目,如下所示:

 3     200    HTTP            Tunnel to     accounts.google.com:443            0

没有别的了。无响应正文。有没有人对可能发生的事情有任何建议?它只发生在这台计算机上的事实告诉我,这可能不是编程问题。

最佳答案

我终于弄清楚了这个问题。我发布这个答案是希望它能帮助其他人在未来不可避免地挠头。

现在这是我的工作代码:

private static string GetLoginHtml()
{
var request = (HttpWebRequest)WebRequest.Create(LoginUrl);
var cookieJar = new CookieContainer();

request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.CookieContainer = cookieJar;
using (var requestStream = request.GetRequestStream())
{
string content = "Email=" + Username + "&Passwd=" + Password;
requestStream.Write(Encoding.UTF8.GetBytes(content), 0, Encoding.UTF8.GetBytes(content).Length);
}
using (var sr = new StreamReader(request.GetResponse().GetResponseStream()))
{
string html = sr.ReadToEnd();
string galxValue = ParseOutValue(html, "GALX");

return GetLoginHtml2(galxValue, cookieJar);
}
}

我的猜测是我的 requestStream 在获得响应流之前没有被垃圾收集和关闭。我认为在请求流完成写入其字节之前,响应流已被打开和读取。愚蠢的 .NET 垃圾收集器

关于c# - HttpWebRequest 只是卡在一台电脑上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27361962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com