मैं जावा का उपयोग कर वेब सर्वर से ज़िप फ़ाइल डाउनलोड कर रहा हूं लेकिन किसी भी तरह से मैं प्रत्येक फ़ाइल में लगभग 2kb खो रहा हूं। मुझे नहीं पता कि क्यों एक ही कोड अन्य प्रारूपों, जैसे, पाठ, एमपी 3 और अतिरिक्त के साथ ठीक काम करता है। किसी भी मदद की सराहना की है? यहां मेरा कोड है। लाइनों को हटाने के लिएजावा का उपयोग कर ज़िप फ़ाइल डाउनलोड करें?
public void download_zip_file(String save_to) {
try {
URLConnection conn = this.url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestProperty("content-type", "binary/data");
InputStream in = conn.getInputStream();
FileOutputStream out = new FileOutputStream(save_to + "tmp.zip");
byte[] b = new byte[1024];
int count;
while ((count = in.read(b)) > 0) {
out.write(b, 0, count);
}
out.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
क्या आपके पास सर्वर पर पूर्ण नियंत्रण है जहां ज़िप फ़ाइल होस्ट की जाती है? यदि आप सामान्य वेबब्रोसर का उपयोग करके ज़िप फ़ाइल डाउनलोड करते हैं तो यह काम करता है? – BalusC
मेरे पास वेब सर्वर तक पहुंच नहीं है लेकिन यह ब्राउज़र पर ठीक काम करता है। मैंने उपयोगकर्ता एजेंट बदल दिया और सब कुछ ठीक काम किया। – Mohamed
ड्रैट, मैंने बिल्कुल जवाब दिया होगा कि एक जवाब में जब आपने पुष्टि की कि यह एक सामान्य ब्राउज़र में ठीक काम करता है :) 'setDoOutput (true)' जिस तरह से POST को अनुरोध विधि सेट करता है। आप सामान्य रूप से इसे शुद्ध फ़ाइल डाउनलोड के लिए उपयोग नहीं करना चाहते हैं। जीईटी के बजाय POST द्वारा अनुरोध किए जाने पर कुछ सर्वर डाउनलोड को अस्वीकार कर देंगे। – BalusC