在Android中获取503作为Http响应?

时间:2013-06-27 05:54:44

标签: android http-post varnish multipartentity

请检查我的logcat。这是我解析http响应时得到的结果。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
   <head>
      <title>503 Service Unavailable</title>
   </head>
   <body>
      <h1>Error 503 Service Unavailable</h1>
      <p>Service Unavailable</p>
      <h3>Guru Meditation:</h3>
      <p>XID: 1294992728</p>
      <hr>
      <p>Varnish cache server</p>
   </body>
</html>

我在将图像从android上传到服务器时收到此响应。任何人都可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

5xx错误类型是服务器端错误。 wiki的List of HTTP status codes表示错误代码503表示The server is currently unavailable (because it is overloaded or down for maintenance). Generally, this is a temporary state.因此,简而言之,您的服务器似乎已关闭。

希望这些信息有所帮助。

答案 1 :(得分:1)

正如您所说,服务器错误是503,请检查 this link 一次。它声明可能由于以下原因而发生503错误:

  
      
  1. 从站点的IP名称(没有前导'http://'的站点URL)获取IP地址。此查找(将IP名称转换为IP地址)由域名服务器(DNS)提供。
  2.   
  3. 打开与该IP地址的IP套接字连接。
  4.   
  5. 通过该套接字写入HTTP数据流。
  6.   
  7. 作为响应,从Web服务器接收HTTP数据流。此数据流包含状态代码,其值由HTTP协议确定。解析此数据流以获取状态代码和其他有用信息。
  8.   

答案 2 :(得分:1)

在没有真正看到你的VCL文件的情况下很难分辨......但是考虑到你在上传时遇到了这个错误(一个POST请求)我想你正在击中其中一个后端超时[ 1]。

尝试提高超时时间并查看错误是否仍然存在:

backend default {
  .host = "your.host.tld"; //Use your current setting
  .port = "XXX";           //Use your current setting
  .connect_timeout = 300s;
  .first_byte_timeout = 600s;
  .between_bytes_timeout = 600s;
}

[1] https://www.varnish-cache.org/docs/3.0/reference/vcl.html?highlight=timeout#backend-declarations