] सर्वर एक-दूसरे अंतराल पर चंक्स लिखने का इरादा रखता है, जिससे क्लाइंट को उन्हें मांग पर प्राप्त करने की अनुमति मिलती है। हालाँकि, वर्तमान कार्यान्वयन चुनौतियों का सामना करता है:
फंक हैंडपोस्ट (w http.responsewriter, r *http.request) { डब्ल्यू। W.Header ()। सेट ("ट्रांसफर-एन्कोडिंग", "chunked") W.Header ()। सेट ("x- सामग्री-प्रकार-विकल्प", "nosniff") टिकर: = time.newticker (time.second) गो फंक () { t के लिए: = रेंज टिकर.सी { io.writestring (w, "चंक") fmt.println ("टिक", टी) } } () time.sleep (time.second * 5) ticker.stop () fmt.println ("समाप्त: सामग्री-लंबाई वापस करना चाहिए: 0 यहाँ") W.Header ()। सेट ("सामग्री-लंबाई", "0") }
समाधान
सत्यापन
सर्वर से कनेक्ट करने के लिए टेलनेट का उपयोग करें: ... HTTP/1.1 200 ओके तारीख: ... सामग्री-प्रकार: पाठ/सादा; charset = UTF-8 ट्रांसफर-एन्कोडिंग: चंक 9 चंक #1 9 चंक #2 ...
func HandlePost(w http.ResponseWriter, r *http.Request) { w.Header().Set("Connection", "Keep-Alive") w.Header().Set("Transfer-Encoding", "chunked") w.Header().Set("X-Content-Type-Options", "nosniff") ticker := time.NewTicker(time.Second) go func() { for t := range ticker.C { io.WriteString(w, "Chunk") fmt.Println("Tick at", t) } }() time.Sleep(time.Second * 5) ticker.Stop() fmt.Println("Finished: should return Content-Length: 0 here") w.Header().Set("Content-Length", "0") }
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3