簡體   English   中英

網址連接未讀取內容長度

[英]urlconnection not reading content-length

當打開URLConnection時,我使用以下代碼來獲取內容長度,但是它返回-1。

URL url = new URL(sUrl[0]);
URLConnection connection = url.openConnection();
connection.connect();
int fileLength = connection.getContentLength();

當時我以為服務器未設置內容長度標頭(連接對象中的dig確認值是-1),因此使用PHP中的以下內容設置自己:

header('Content-Length: '.strlen($output));

當我打印出strlen($output)的值時,我得到了正確的值,但是此標頭似乎並沒有出現在Java中。

需要任何建議或進一步的代碼嗎? 謝謝

如果確實從連接的服務器將內容長度標頭發送回給您,則您擁有的代碼將起作用。 您可以通過單擊一個簡單的Web服務來證明這一點,該服務確實返回Content-Length,如以下代碼所示:

URL url = new URL("http://freegeoip.net/json/199.201.1.200");
URLConnection connection = url.openConnection();
int fileLength = connection.getContentLength();    
System.out.println(fileLength);

運行此命令時,您將看到它打印出內容長度。

原來, transfer-encoding設置為chunked時應忽略content-length 看來我的Web主機會更進一步,甚至完全刪除了標頭,即使我在PHP中手動設置了它也是如此。 已通過Chrome的高級REST應用確認。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM