httppost默认返回什么?

时间:2014-07-21 10:13:28

标签: c#

我目前正在与多个第三方合作,通过带有加密网址字符串的HttpPost向他们发送数据。每个第三方都发回一个xml字符串,然后我读取并使用它。一切都很好!

我的问题是这个。如果我向第三方发送请求,并且他们没有提供回复,会发生什么?澄清一下,我的意思是在所有情况下都不会返回响应字符串 - 不仅仅是错误和超时。

2 个答案:

答案 0 :(得分:2)

很少有事情发生:

  • 第三方发送响应:它包含所需的输出(在您的情况下为XML字符串。
  • 发送响应,但内容为0长度:请注意,HTTP响应由两部分组成:HTTP标头和内容。在这种情况下,第三方仅发送标头。您可以将其视为String.Empty输出。
  • 未发送响应:第三方应根据HTTP协议发送响应,但不会发送响应。第三方可能会关闭套接字或只是超时。这可能是因为内部问题,或者他们只是选择不回应你。这将通常导致异常。但是,例外情况取决于您用来发送HTTP请求的方法/库。

答案 1 :(得分:1)

HTTP协议不包含发送响应的方法。响应始终已发送。但它可能是零长度。

  

我的意思是在所有情况下都不会返回响应字符串

这是一个问题还是一个断言?这句话是错误的。

  

并且他们没有提供回复,会发生什么?

那么在零长度响应的情况下会发生什么?这完全取决于您的代码。协议没有框架关心这个案例。

  

在发回任何标头之前,套接字是否真的无法关闭?或者,如果服务器已关闭?

违反协议。那不是HTTP。在这种情况下,应用程序通常会通过例外通知。