【问题标题】:Server not response to WebRequest服务器不响应 WebRequest
【发布时间】:2014-10-06 17:02:39
【问题描述】:

我应该编写用于处理某些网站的程序。它使用 HttpWebRequest 和 HttpWebResponse 向服务器发送和接收数据。首先,我的程序在这个站点上授权,然后准备数据并发送。当我在开发人员的 PC 上运行我的程序时,它运行良好,没有任何问题,但是当我的程序在客户端的 PC 上运行时,它就不起作用了。我远程连接到客户端的 PC 以获取程序的日志并将其与我的日志进行比较。客户是我们的合作伙伴,他给我他的测试密码。好的,我比较日志,它是一样的!唯一的区别是对最后一个请求的响应:在我的 PC 上我收到 html 页面,但客户端的 PC 生成超时异常。首先,我想,这个问题是客户端的防火墙,但是我的程序如何获取身份验证的 cookie 和会话的 id 信息?我把WebRequest的所有参数都输出了,对比了一下,还是一样的,我已经说过了。

谁能告诉我,这个错误可能是什么原因以及我该如何解决?

【问题讨论】:

  • 你应该发布你的代码。

标签: c# httpwebrequest httpwebresponse


【解决方案1】:

如果没有您的代码,这将变得异常困难,您应该有几个错误处理和验证来帮助确定错误的位置。一个例子是:

HttpWebRequest request = WebRequest.Create(@"http://stackoverflow.com") as HttpWebRequest;
request.Credentials = NetworkCredentials(@"username", @"password");
request.Timeout = 300;

if(string.IsNullOrEmpty(request))
     throw new Exception("Error in Request");

using(var stream = request.GetResponse().GetResponseStream())
     using(var writer = File.Create(Environment.GetFolderPath(Environment.SpecialFolder.Desktop))
          stream.CopyTo(writer);

我强烈建议也使用 Fiddler 或浏览器来分析响应/请求。它应该向您展示其中的大部分细节。

没有代码,我们无法提供更多帮助。

【讨论】:

  • 我的代码是一样的,但是我手动添加了一些标头和cookie。我已经在使用 Fiddler。真的很棒的程序,我的程序是用数据写的,是Fiddler拿到的(网站没有官方API)。
  • 嗯,上面的代码运行良好。尝试获取您尝试请求的内容,如果失败,则可能是应用程序之外的问题。如果它有效,那么您的 API 就有问题。
  • 感谢您的帮助,但我已经说过,我向同一个客户端的 url 发出请求(客户端的 url 是“http:\\site.com\1234”,而我使用的 url 是“http:\\site.com\1234”),我使用他的登录名和密码。我得到 html 页面,但客户端有异常。在我的电脑上,我通过代理使用互联网,没有它的客户端连接到互联网,但我没有手动设置代理的设置,我的程序使用默认值。
  • 非常感谢,我忘了关闭响应流。我不知道如何,但是在我的PC Fiddler上自动关闭它,但是用户的PC没有Fiddler...当我刚刚添加:responseStream.Close()读取操作后,服务器开始响应所有请求。
  • @Mixim 是的,这就是我使用using 的原因,所以只要它离开它实现IDispose 的范围。
【解决方案2】:

当我使用 Win XP 而我的客户端使用 Vista 时,我曾经遇到过同样的问题。这些 webrequest 和 webesponse 调用在内部转换为 SOAP 调用,并使用 Internet Explorer dll 之一进行传输。 XP 中的默认超时为> Vista 请求的默认超时。在与客户的基础架构团队讨论后,我们更改了超时,这就是解决问题的方式。根据 MSDN 默认超时为 100 秒。

【讨论】:

  • 我知道了,所以我手动设置超时时间为120000ms,操作系统是一样的Win7
猜你喜欢
  • 1970-01-01
  • 2011-06-15
  • 2020-10-16
  • 1970-01-01
  • 2013-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-24
相关资源
最近更新 更多