gpt4 book ai didi

c# - GetRequestStream() 返回 WebException 超时......但仅在某些机器上

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:09:35 24 4
gpt4 key购买 nike

Exception is thrown at the first "using":
using (var os = firstRequest.GetRequestStream())

我现在的猜测是它与服务器发起的 ssl 信任问题有关,但如果这是真的,那么 4 台 Windows 7 pro 机器之间有什么不同,其中 2 台工作正常,2 台抛出异常,

异常详情:

System.Net.WebException was unhandled
Message=The operation has timed out
Source=System
StackTrace:
at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
at System.Net.HttpWebRequest.GetRequestStream()
at MyCheckAPI.MyCheckLogic2.HttpPost4(String URI, String URI2, String Parameters1, String Parameters2) in C:\Users\Ha-Erez\Desktop\RichTB\RichTB\MyCheckLogic2.cs:line 309
at MyCheckAPI.MyCheckLogic2.MobileGetCode2(String email, String pass) in C:\Users\Ha-Erez\Desktop\RichTB\RichTB\MyCheckLogic2.cs:line 444
at RichTB.Integration.button5_Click(Object sender, EventArgs e) in C:\Users\Ha-Erez\Desktop\RichTB\RichTB\Form1.cs:line 348
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at RichTB.Program.Main() in C:\Users\Ha-Erez\Desktop\RichTB\RichTB\Program.cs:line 18
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:

它会是什么?

public static string HttpPost4(string URI, string URI2, string Parameters1, string Parameters2)  
{
string respStr = String.Empty;
CookieContainer cookieJar = new CookieContainer();
HttpWebRequest firstRequest = (HttpWebRequest)WebRequest.Create(URI);
try
{
firstRequest.CookieContainer = cookieJar;
firstRequest.KeepAlive = true;
firstRequest.ContentType = "application/x-www-form-urlencoded";
firstRequest.Method = "POST";
firstRequest.KeepAlive = false;
firstRequest.Timeout = 5000;
firstRequest.Proxy = null;
firstRequest.ServicePoint.ConnectionLeaseTimeout = 5000;
firstRequest.ServicePoint.MaxIdleTime = 5000;

byte[] bytes = System.Text.Encoding.UTF8.GetBytes(Parameters1);
firstRequest.ContentLength = bytes.Length;
using (var os = firstRequest.GetRequestStream())
{
os.Write(bytes, 0, bytes.Length);
os.Close();
}

using (HttpWebResponse firstResponse = (HttpWebResponse)firstRequest.GetResponse())
{
using (var sr = new StreamReader(firstResponse.GetResponseStream()))
{

respStr = sr.ReadToEnd().Trim();
Logger(DateTime.Now + " Login Response: " + respStr, 1);

sr.Close();
}
firstResponse.Close();
}

// cookieJar.Add(firstResponse.Cookies);

HttpWebRequest secondRequest = (HttpWebRequest)WebRequest.Create(URI2);
secondRequest.Method = "POST";
secondRequest.ContentType = "application/x-www-form-urlencoded";
// secondRequest.KeepAlive = true;

secondRequest.KeepAlive = false;
secondRequest.Timeout = 5000;

secondRequest.ServicePoint.ConnectionLeaseTimeout = 5000;
secondRequest.ServicePoint.MaxIdleTime = 5000;

// secondRequest.Headers["Set-Cookie"] = firstResponse.Headers["Set-Cookie"];
secondRequest.CookieContainer = cookieJar;
byte[] bytes2 = System.Text.Encoding.UTF8.GetBytes(Parameters2);
secondRequest.ContentLength = bytes2.Length;
// httpWebRequest.
using (var os2 = secondRequest.GetRequestStream())
{
os2.Write(bytes2, 0, bytes2.Length);
os2.Close();
}
using (WebResponse secondResponse = secondRequest.GetResponse())
{
using (var sr = new StreamReader(secondResponse.GetResponseStream()))
{

respStr = sr.ReadToEnd().Trim();
sr.Close();
}
}

return respStr;
}
catch (Exception ee)
{
Logger(DateTime.Now + " , "+ ee.Message +" , "+ ee.StackTrace, 1);
}
finally
{
firstRequest.Abort();
}
return respStr;
}

最佳答案

服务器处理不当的SSL 证书问题。当重定向到不同的服务器时,一切都适用于所有场景。
也通过将 .net 4 升级到 .net 4.5 在客户端解决

关于c# - GetRequestStream() 返回 WebException 超时......但仅在某些机器上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21001554/

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