我正在读取我在Android应用中从php文件返回的生成的xml 输出,如下所示
URL u = new URL("http://www.abcdefg.com/hijklm/nopqr.php");
URLConnection uc = u.openConnection();
String contentType = uc.getContentType();
int contentLength = uc.getContentLength();
在php文件中,动态生成xml。问题是当xml的大小增加时 contentLength的值变为-1 。我观察到当xml的大小增加超过7kb时,contentLength变量的值包含-1。
我推断它可能超出了标题大小的限制,但不确定。任何人都可以解释我 我该怎么做才能阅读大型xml内容........?
答案 0 :(得分:2)
您在客户端看到的内容长度是在服务器端的标头中设置的内容长度。如果您看到-1
,则表示回复中没有Content-Length
标题。
我希望PHP端会尝试自动设置Content-Length
。如果文档小于~7kb,则可以将其全部保存在缓冲区中,然后发送具有实际大小的标题。如果它大于该值,则缓冲区填满并且输出代码被强制发送没有Content-Length的头部。
有两种方法可以解决这个问题。
在客户端,如果报告为-1
,您可以忽略内容长度。这只是意味着没有设置Content-Length
标头。即使您将另一端固定为始终设置标题,您也应该这样做。
在服务器端,可能告诉PHP使用特定值作为内容长度。