ПредишенСледващото

Първо, помислете за WebRequest класа:

Методите и свойства на WebRequest клас

Методи и имоти

Създаване () и CreateDefault ()

Класът WebRequest не публичен конструктор. Вместо статични методи конструктор Създаване () и CreateDefault () може да се използва за създаване на класа случаи. Тези методи всъщност не създават WebRequest тип обект, както и нов обект на клас, получени от WebRequest, като HttpWebRequest или FileWebRequest.

Използване RegisterPrefix () метод на клас могат да бъдат регистрирани за лечение на специфичен протокол. Обекти на този клас метод WebRequest.Create () ще бъдат създадени. Този механизъм се нарича "сменяем протокол" (за включване протоколи).

GetRequestStream () метод връща поток обект, който може да се използва за изпращане на някои данни към сървъра.

BeginGetRequestStream () и EndGetRequestStream ()

Искането за асинхронен достъп се изпълнява BeginGetRequestStream поток () и EndGetRequestStream ().

GetResponse () метод връща обект WebResponse, че може да се използва за четене на данни от сървъра.

BeginGetResponse () и EndGetResponse ()

Що се отнася до потока от искането са асинхронни методи ЯДП поток отговор.

Ако BeginXX () метод започна да асинхронна обработка, че е възможно да се спре метода Прекратяване ().

RequestUri - само за четене имот, който се връща на URI, свързани с WebRequest. Това URI могат да бъдат инсталирани в статичен метод Създаване () на класа.

Метод имот е използван, за да получите или да зададете метод за конкретна заявка. HttpWebRequest обект поддържа HTTP GET-методи, POST, HEAD, и така нататък. Г.

В зависимост от използвания протокол, сървърът може да се прехвърля и различни информацията в заглавията може да се получи от сървъра. Информацията, съдържаща се в колекцията WebHeaderCollection глава протокол, който може да бъде достъпен чрез свойството заглавия.

ContentType и ContentLength

Типът на данните, изпратени от сървъра се определя в имота ContentType. Може да има различни типове данни, такава дължина, че данните могат да останат в масива от байтове. съдържание обикновено определя MIME типа данни: изображение / JPEG, изображение / GIF, текст / HTML или текстов / XML.

Ако сървърът изисква удостоверяване на потребителя, идентичност на потребителя сертификат може да се настрои чрез собственост на идентификационни данни.

За протоколи, които поддържат предварително удостоверяване, в PreAuthenticate имот може да се настрои да е вярно. По подразбиране, уеб-браузър първо се прави опит за достъп до уеб-страница на сайта без удостоверяване. Ако е необходима Интернет страницата на удостоверяване, сървърът отговаря, че за отказан достъп за неудостоверени потребители. Следната заявка от страна на клиента включва информация за удостоверяване. Този допълнителен цикъл обмен може да се избегне, ако собственост PreAuthenticate настроен да е вярно.

Пълномощникът имота може да се инсталира уеб-прокси, която се използва за това искане.

В ConnectionGroupName свойства могат да бъдат определени басейн на съединения да се използват с този обект WebRequest.

Timeout имот задава времето в милисекунди, което е необходимо за отговор от страна на сървъра. Стойността по подразбиране е 100 000 мл. Ако през това време сървърът не отговаря, по изключение се генерира WebException.

WebResponse клас се използва за четене на данни от сървъра. Един обект от този клас, върнат от GetResponse (), както се вижда, когато се обмисля WebRequest клас.

WebResponse клас методи и свойства

Методи и имоти

GetResponseStream () метод връща поток обект, който се използва за четене на отговор от сървъра.

Ако вече не е необходимо предметът на отговор, той трябва да бъде затворена от Close ().

Заглавия WebHeaderCollection имот връща колекция, която включва специфична за протокола информация в заглавието, че се връща от сървъра.

Нека да разгледаме един малък пример за използването на тези класове в WPF-приложение:

Net и C #, класове и webrequest WebResponse

щепселно протоколи

WebRequest - е абстрактен клас, така метод WebRequest.Create () не може да създаде обект от тип WebRequest - вместо създава обект клас получен от WebRequest. Когато изпращате HTTP заявка метод WebRequest.Create () създава HttpWebRequest обект. FileWebRequest обект е създаден по искане на схемата за прехвърляне на файлове.

Както е показано, вериги, HTTP, HTTPS, и предварително определен файл в .NET конфигурационния файл, machine.config файл. В този конфигурационен файл може да се намери в каталога \ Microsoft.NET \ Framework \\ CONFIG.

Набор от протоколи, използвани клас WebRequest, може да удължи софтуер елемент или добавяне на конфигурационния файл. В подкрепа на новия протокол, различен от схемите HTTP, HTTPS и файл, трябва да се създаде нов клас, който произтича от WebRequest, за FTP такъв FtpWebRequest. Този клас трябва да има приоритет методите и свойствата на базовия клас, а те прилагат протокол-конкретно поведение. Освен това, той е длъжен да определи класа на инициатор (фабрика клас) на. FtpWebRequest създава клас обекти. Такъв клас-инициатор клас WebRequest един, IWebRequestCreate трябва да изпълни интерфейса. Ние наричаме този клас FtpWebRequestCreator. Един екземпляр от този клас трябва да се регистрира по Схемата за FTP с помощта на WebRequest класа:

Ако сега FTP схема се използва с метод WebRequest.Create (), създава и връща нова инстанция на програма FtpWebRequest клас. Сега на обекта заявка може да се използва за копиране на файлове от FTP-cepvera и FTP-сървър. Тук ние няма да се занимава с реализацията FtpWebRequestCreator клас, но можете да го направите сами. За FTP-клиент софтуер е необходим за използване класовете гнездо с TCP връзки.

FileWebRequest и FileWebResponse

Четене и писане на локални файлове или файлове на споделени устройства, които не са много различни от четенето и писането на файлове, намиращи се на уеб сървъри. За да четат и пишат на файлове с помощта на класовете и FileWebRequest FileWebResponse. Въпреки това, много от методите и свойствата, определени в основните класове WebRequest и WebResponse, не се използват в производните класове и в документацията на MSDN са изброени само като "запазени за бъдеща употреба."

За да се покаже потенциалното използване на класове и FileWebRequest FileWebResponse WPF създаден просто приложение, в което файлът да се отвори, можете да въведете името в текстовото поле, след което файлът се отваря и се показва в текстово поле многоредово. Откритият файл може да се запише нов текст:

Net и C #, класове и webrequest WebResponse

Четене от файлове

Писане на файлове

За да напишете данни обратно към файла изпълнение на клик манипулатор за бутона "Save". Както и преди, да създадете WebRequest обект чрез преминаване името на файла. Сега, вместо да използвате StreamReader StreamWriter. В допълнение, има и друга съществена промяна в кода. За да направите потока на "писмена форма" трябва да се създаде стойност "на път" в имота метод. По подразбиране, този имот е настроен на "GET", което показва, че потокът може да се чете само:

Асинхронни страница поиска

Допълнителни средства WebRequest клас е възможността да направите заявка за страница асинхронно. Това означава значително, тъй като значително забавяне може да съществува между изпращането на искането и получаването на отговор домакина. Методи като WebClient.DownloadData () и WebRequest.GetResponse (), няма да се върне до контрол готов отговор сървър. Не бих искал да "замрази" искането за по-дълъг период от време, и тъй като в такива сценарии е най-добре да се прилага методи BeginGetResponse () и EndGetResponse ().

BeginGetResponse () метод работи асинхронно и се връща контролират почти мигновено. "Зад кулисите" по време на работа асинхронно тече на фона конец, за да получите отговор от сървъра. Вместо да върне WebResponse обект, BeginGetResponse () метод връща обект, който реализира интерфейса IAsyncResult. С този интерфейс може да продължи да работи или да изчака, докато тя е на разположение да отговарят и след това се обадете EndGetResponse () за събиране на резултатите.

Също така е възможно да премине метод обаждане делегат BeginGetResponse (). Целта на делегата на обаждане трябва да е метод, който се връща невалидни и получаване IAsyncResult връзка като параметър. Когато нишката работник завършва получаването на резултата, издръжливостта й призовава обаждане делегат да информира за приключването на работата. Както е показано в следния код, EndGetResponse () наричаме метода на обратно повикване позволява да се извлече WebResponse сайтове (промяна на първия пример):

Моля, имайте предвид, че с цел да се извлече метода на източник обект WebRequest BeginGetResponse (), можете да мине този обект във втория параметър. Вторият параметър е препратка към обект, и е известен като състояние променлива. По време на изпълнение на метода същия обект състояние обаждане може да се екстрахира, използвайки AsyncState IAsyncResult интерфейс свойства.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!