【发布时间】:2018-09-16 14:00:09
【问题描述】:
我在使用HttpWebrequest 解码答案时遇到了一些问题。当我在服务器中进行身份验证时,我想获取页面的 html 代码。但是得到:
‹?????YлrЫЖ~h“Ж@D‚¤-ЫAKkQ¶2–м±h;©ДhVА‚ШPм‚”МСLях:У·hчOЯ&УѕFПо .”(хLн№|зІзњ] ы[o_N~ z761‡ыщ/%ЮpNІHєфП[
ф2ЋЌDwr“Pdёz…‘ Чў'7 )§gВпоў^‘9Е(Ґ‘GSљV—фтЉ‰R®jкЗо‡Qчe<O€—aХЪСSoFиF—IњЉЉ‹$мr—„м~'г4UKђ8Љ~њО‰иzTPW°8Є…Т$€#©ХЎsВBщсRКyHtN»nЖХhїйчww]WК†,є2R‚“®ґ¤Фыd!—6ь C@ЋЃ='3Ъ»о*1PL„tш‰u™с‰^§4]Рtї§йWѓqqRЫеiCjНJUѕ№›ІD<uЃЈю¶б…QµџїђС4Ьпйїкz—ЏwЈЯ¤u‡њџE*Э†ЬГГ,OЭ”ТИф¬Х‚¤ЕћнЕn6‡$ЋC*уMj§P*”©Б•†µЪ@4-з–†њJgОЯoТЪ@nиЕџ+§kЕ фє¦®сЌКw°¤юm™—D. лiП¦Ч¬E“RuГѓЗ-щ&Ў~Щ°”ЪдєћЋj“кfN=\Ж[Ўў‡П”кЎ-, йьЪсј,¬•_'рF зцNZъ1<–Мgрр™Б#Ње/сж,‚g–фІd–ЏВb–1х$ љ:лjХГо"Њ‰gІўЃ•±36uаlpгшЉQIк°Ћ1иГ?ЛщЦD…ІџВE–-§ЭF¶<Zђі®@№€ИВФр>†ЬyJJ тйoa„4/d0KЂtz'±G№УЮ”2М'ґVрc3Aзаён†„у5НQћ1† Жих[0c9ҐBRS аж,"ТeJ"мІ(ўйлЙс|'‡ѕќXаBи©@ЄА—LёБG... Yп‡|Z–сbГ(ё{IZp*IњQ±” aK)^j?1OЦ*Ї–З№5КNПA›Г2БаQєЏ°s›Л†џAЫПЧ”Н±СQНєї§ Ё{I—ѕ>лч+О’LДp%џi^њБз8w?язжћЋ«0o}MрOBrѓуў>ЇЊйC...9*"0-v ,MЕБІёvмыРќЪTwРW\е&РJФэ1,¦°І)&pЏ;€б*™H{-еЧыЦ':z'ьўД•?kD;ХBQkђGr'чќ_±ј …ЛУОГ»]т#йЌoWьсеХ}µЄМ[(ЏҐPF7a5[Ї¬нЃе\LL$eQ‡кµОD7рЇ{|ЬхjuUВг©UЁїЋі”йЙґ і(TТvJZ?9{:&Xeж+YмT_WR\ж]ѕ•G№wаМЙЅИЯЇBИ9j'AЃѕ{{:Ѓ‡А!К»юц6пш8'WA\ZЙ'Ґ,DЬљІйG ЅЪ]т№UHЌ.Еуѕј{В)ЋВ,QЙ*ї:ШZЁќЦњS.Д›O",гв$'ођіёy©щRМaЊ†Љk'Ћў; -МахЎq0J_Кі±zq*mе”{Ј№x-и¬Ъ{ъ#РeмЭч=¶0‡+зѕЎ.ј Mб•?tхEµ>U‹ЃЭмЃЖ,…!ЛГ}'»XШ[Џd`КЏ\Ў' р рАХ0µOjЪA°ГтхDіЂvIТ®·Еч-‚а¤Ђ¬ЙE-куqуqСЅїЗЧ'mЬ'hx2ћGЈWГЬicо@!|џLЊ7oъґ ъ GЗG'|Ц|††ЮЅz?:?тyт9lТСџFп†ёЫFЬ...Ё]К№с.f‘hБцІpc;ЙуІЮO№%АgкUІх›юЅјA\КЇБ еИИу•'ёЊSмхеDQЧ‹jЂеЧ!9µеr иГLэїЉбя?бДЩЕъ??
请帮我解决我的问题
public static void RequestMutualAuths()
{
string logon = "admin";
string password = "admin";
string url = "http://192.168.1.55/";
WebRequest request = WebRequest.Create(url);
request.Method = WebRequestMethods.Http.Get;
request.ContentType = "application/x-www-form-urlencoded";
request.Headers.Add("Accept-Language", "en-US");
request.Headers.Add("Accept-Encoding", "gzip, deflate");
string credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes(logon + ":" + password));
request.Headers[HttpRequestHeader.Authorization] = string.Format("Basic {0}", credentials);
request.PreAuthenticate = true;
using (WebResponse response = request.GetResponse())
{
response.Headers.Add("Content-type", "text/plain");
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
using (Stream dataStream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding("windows-1251")))
{
string responseFromServer = reader.ReadToEnd();
Console.WriteLine(responseFromServer);
}
}
}
}
【问题讨论】:
-
读取数据时为什么要指定windows-1251编码?
-
我尝试了“utf-8”字符集,但它也不起作用。我有类似的回答。
-
request.Headers.Add("Accept-Encoding", "gzip, deflate");它是否被压缩了?如果是,请参阅this。 -
如果我删除这个选项,我会得到一个一个结果
-
@Serhii 你是什么意思?
标签: c# webrequest httpwebresponse