Ich konvertiere einen Code von HttpWebRequest
zu HttpClient
. Ein Problem, das ich habe, ist, den Zeichensatz aus dem Inhalt-Antwort-Header zu bekommen.Wird der Inhaltstyp-Zeichensatz nicht von HttpResponseMessage verfügbar gemacht?
Wenn HttpWebRequest
verwendet, wird der charset in der, wie diese können Sie auch von WebResponse.ContentType
Eigentum oder aus den Content-Type-Header in HttpWebResponse.Headers
um es zu bekommen
using (WebResponse response = await this.webRequest.GetResponseAsync())
{
string characterSet = ((HttpWebResponse)response).CharacterSet;
HttpWebResponse.CharacterSet
Eigenschaft ausgesetzt.
Mit HttpClient
scheint der Zeichensatz aus dem Header ContentType
zu fehlen.
Hier ist der Code, den ich für HttpClient
bin mit:
using (HttpClient httpClient = new HttpClient(httpClientHandler))
{
using (HttpResponseMessage httpResponseMessage = await httpClient.GetAsync(uri, HttpCompletionOption.ResponseContentRead))
{
charset = httpResponseMessage.Content.Headers.ContentType.CharSet;
Die CharSet Eigenschaft immer null
ist. HttpResponseMessage
hat eine Headers
-Eigenschaft, aber es enthält nicht den Content-Type-Header. HttpResponseMessage.Content
hat auch eine Headers-Eigenschaft, die anscheinend den Content-Type-Header enthält, aber dieser Header zeigt "Content-Type: text/html"
- es hat nicht den Zeichensatzabschnitt.
Mit dem ersten Ansatz mit HttpWebResponse
für die gleiche URL, bekomme ich die Charset-Teil der Content-Type-Header. Fehle ich etwas?
Hey, willkommen Überlauf zu stapeln. Zu Ihrer Information, Sie können Dinge wie "HttpResponseMessage" wörtlich drucken, indem Sie sie in Backticks '' einschließen. –