streaming - getting a responseLength for a HttpWebRequest upload from another webfile to stream into the upload when the source doesn't implement ContentLength? -


पृष्ठभूमि - मैं एक मौजूदा वेबपेज को एक अलग वेब अनुप्रयोग में स्ट्रीम करने का प्रयास कर रहा हूं, एचटीटीपी वेबबेट / HttpWebResponse सी # में एक मुद्दा मैं हड़ताली हूं कि मैं फ़ाइल अपलोड की सामग्री-लंबाई फ़ाइल अपलोड की सामग्री-लंबाई का उपयोग करते समय फ़ाइल अपलोड सेट करने का प्रयास कर रहा हूं, लेकिन जब ऐसा लगता है कि स्रोत वेबपेज वेबसर्वर पर है, जिसके लिए एचटीटीपी वेब रिस्पांस नहीं करता है सामग्री लंबाई प्रदान करें

<पूर्व> HttpWebRequest downloadRequest = WebRequest.Create (नई URI ("डाउनलोड")) HttpWebRequest के रूप में; (HttpWebResponse downloadResponse = downloadRequest.GetResponse () के रूप में HttpWebResponse) (var uploadRequest = (HttpWebRequest) WebRequest.Create (नया उरी ("यूरिफाथ")) का उपयोग कर रहा है; UploadRequest.method = "पोस्ट"; UploadRequest.ContentLength = downloadResponse.ContentLength; // ####

प्रश्न : इस मामले को पूरा करने के लिए मैं इस दृष्टिकोण को कैसे अपडेट कर सकता हूं (जब डाउनलोड प्रतिक्रिया में कोई सामग्री-लंबाई नहीं है सेट)। क्या यह किसी तरह मेमोरीस्ट्रीम का प्रयोग हो सकता है? किसी भी नमूना कोड की सराहना की जाएगी।

यदि आप अन्य वेब सर्वर से प्रतिक्रिया डाउनलोड करने में खुशी रखते हैं पूरी तरह से, यह वास्तव में जीवन आसान बना देगा बस बार-बार मेमोरीस्ट्रीम में लिखें, जैसा कि आप पहले वेब सर्वर से प्राप्त करते हैं, फिर आप दूसरे अनुरोध के लिए निर्धारित लंबाई जानते हैं और आप आसानी से डेटा लिख ​​सकते हैं (विशेषकर MemoryStream लिखने के लिए एक विधि है इसकी सामग्री दूसरी धारा में है)।

इसका नकारात्मक पक्ष यह है कि यदि यह बड़ी फ़ाइल है तो आप बहुत मेमोरी ले सकते हैं क्या यह आपकी स्थिति में एक समस्या होने की संभावना है? विकल्पों में शामिल हैं:

  • एक MemoryStream का उपयोग करने के बजाय फ़ाइल में लेखन। निश्चित रूप से फाइल को साफ करने के लिए आपको बाद में फाइल को साफ करना होगा - आप मूल रूप से फ़ाइल सिस्टम को बड़ी मेमोरी के रूप में उपयोग कर रहे हैं:)
  • "टुकड़ा पढ़ना, एक टुकड़ा लिखना" के लिए चुने हुए स्थानांतरण एन्कोडिंग का प्रयोग करना; हो सकता है सही होने के लिए बेवकूफी हो - यह निश्चित रूप से कुछ नहीं है जो मैंने पहले किया है।

Comments

Popular posts from this blog

c# - How to capture HTTP packet with SharpPcap -

php - Multiple Select with Explode: only returns the word "Array" -

php - jQuery AJAX Post not working -