मैं HttpWebRequest
से HttpClient
का उपयोग करने से कुछ कोड परिवर्तित कर रहा हूं। एक समस्या जो मुझे हो रही है वह सामग्री-प्रकार प्रतिक्रिया शीर्षलेख से वर्णमाला प्राप्त कर रही है।क्या सामग्री-प्रकार वर्णमाला HttpResponseMessage से उजागर नहीं है?
जब HttpWebRequest
का उपयोग कर, चारसेट HttpWebResponse.CharacterSet
संपत्ति में सामने आ रहा है, इस
using (WebResponse response = await this.webRequest.GetResponseAsync())
{
string characterSet = ((HttpWebResponse)response).CharacterSet;
तुम भी WebResponse.ContentType
संपत्ति से या HttpWebResponse.Headers
में सामग्री प्रकार हैडर से इसे करने के लिए प्राप्त कर सकते हैं की तरह।
HttpClient
का उपयोग करके, वर्णमाला ContentType
शीर्षलेख से अनुपलब्ध प्रतीत होता है।
यहाँ कोड है कि मैं HttpClient
के लिए उपयोग कर रहा हूँ है:
using (HttpClient httpClient = new HttpClient(httpClientHandler))
{
using (HttpResponseMessage httpResponseMessage = await httpClient.GetAsync(uri, HttpCompletionOption.ResponseContentRead))
{
charset = httpResponseMessage.Content.Headers.ContentType.CharSet;
CharSet संपत्ति हमेशा null
है। HttpResponseMessage
में Headers
संपत्ति है लेकिन इसमें सामग्री-प्रकार शीर्षलेख नहीं है। HttpResponseMessage.Content
में हेडर संपत्ति भी है, जिसमें सामग्री-प्रकार शीर्षलेख शामिल होता है, लेकिन वह हेडर "Content-Type: text/html"
दिखाता है - इसमें वर्णमाला भाग नहीं है।
उसी यूआरएल के लिए HttpWebResponse
के साथ पहले दृष्टिकोण का उपयोग करके, मुझे सामग्री-प्रकार शीर्षलेख का वर्णमाला भाग मिलता है। क्या मैं कुछ भूल रहा हूँ?
अरे, ओवरफ्लो स्टैक करने के लिए स्वागत है। एफवाईआई, आप बैकटिक्स में उन्हें संलग्न करके 'HttpResponseMessage' verbatim जैसी चीज़ों को प्रिंट कर सकते हैं। –