HttpWebRequest: Как найти почтовый индекс на канадской почте через WebRequest с приложением в форме x-www?

В настоящее время я пишу несколько тестов, чтобы улучшить свои навыки взаимодействия с Интернетом через Windows Forms. Одним из таких тестов является поиск почтового индекса, который должен быть возвращен веб-сайтом Canada Post.

Моя настройка URL по умолчанию:http://www.canadapost.ca/cpotools/apps/fpc/personal/findByCity?execution=e4s1Обязательные поля формы:номер улицы,название улицы,Город,провинцияContentType is "применение / х-WWW-форм-закрытый»

РЕДАКТИРОВАТЬ: Пожалуйста, примите во внимание значениеприменение / х-WWW-форм-закодирован» вместо значения пункта 3 в качестве contentType. (Спасибо EricLaw-MSFT!)

Результат, который я получаю, не является ожидаемым результатом. Я получаю исходный код HTML страницы, на которой я могу вручную ввести информацию, чтобы найти почтовый индекс, но не исходный код HTML с найденным почтовым индексом. Любая идея о том, что яя делаю неправильно?

Должен ли я пойти по пути XML? Можно ли в первую очередь осуществлять поиск на канадской почте анонимно?

Вот'Пример кода для лучшего описания:

public static string FindPostalCode(ICanadadianAddress address) {
   var postData = string.Concat(string.Format("&streetNumber={0}", address.StreetNumber)
    , string.Format("&streetName={0}", address.StreetName)
    , string.Format("&city={0}", address.City)
    , string.Format("&province={0}", address.Province));

   var encoding = new ASCIIEncoding();
   byte[] postDataBytes = encoding.GetBytes(postData);
   request = (HttpWebRequest)WebRequest.Create(DefaultUrlSettings);
   request.ImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Anonymous;
   request.Container = new CookieContainer();
   request.Timeout = 10000;
   request.ContentType = contentType;
   request.ContentLength = postDataBytes.LongLength;
   request.Method = @"post";
   var senderStream = new StreamWriter(request.GetRequestStream());
   senderStream.Write(postDataBytes, 0, postDataBytes.Length);
   senderStream.Close();
   string htmlResponse = new StreamReader(request.GetResponse().GetResponseStream()).ReadToEnd();

   return processedResult(htmlResponse); // Processing the HTML source code parsing, etc.
}

Я, кажется, застрял в горлышке бутылки с моей точки зрения. Я не нахожу выхода к желаемому результату.

РЕДАКТИРОВАТЬ: Кажется, есть параметры, как для ContentType этого сайта. Позволь мне объяснить.

Там'один с "мета"переменные, которые предусматривают следующее:

мета http-экв = "Тип содержимого" содержание =»application / xhtml + xml, text / xml, text / html; кодировка = UTF-8"

И еще один позже код, который читается как:

form id = "fpcByAdvancedSearch: fpcSearch» имя =»fpcByAdvancedSearch: fpcSearch» Метод =»сообщение" действие =»/ Cpotools / приложения / FPC / личный / findByCity? Исполнение = e1s1" ENCTYPE =»применение / х-WWW-форм-urlencoded»

Мой вопрос заключается в следующем: с каким я должен придерживаться?

Позвольте мне предположить, первый ContentType должен рассматриваться как второй только для другого запроса к функции или около того, когда данные публикуются?

РЕДАКТИРОВАТЬ: В соответствии с запросом, ближе к решению я указан в этом вопросе:WebRequest: Как найти почтовый индекс, используя WebRequest для этого ContentType = ”application / xhtml + xml, text / xml, text / html; кодировка = UTF-8” ?

Спасибо за любую помощь! :-)

Ответы на вопрос(2)

Ваш ответ на вопрос