C # Опубликовать в браузере не удалось, есть идеи? - PullRequest
0 голосов
/ 25 октября 2010

Это быстрое и грязное приложение, которое должно работать только в течение короткого периода времени.Я не разработчик, поэтому, пожалуйста, не забивайте меня.Следующий код в asp работает нормально (секретная информация заменена на example.com и abc 123).

Я знаю, что нижеприведенная практика очень плохая, но это только для демонстрационных целей:

<form method="post" action="https://example.com/asppage.aspx" id="frm_main">
<input type="hidden" name="STATE" id="STATE" value="ABC" />
<input type="hidden" name="VALIDATION" id="VALIDATION" value="123/>
<input type="submit" name="refresh_progress" value="Check Status" id="refresh_progress" /></form>

Однако, тот же код в моем посте c # не работает:

string PostData = "STATE=ABC&amp;VALIDATION=123";
webBrowser1.Navigate("https://example.com/asppage.aspx", "_blank", Encoding.Default.GetBytes(PostData), "Content-Type: application/x-www-form-urlencoded\n\r");

Когда всплывает новое окно браузера, это стандартная форма asppage.aspx без данных, отправленных в него.

Есть идеи, что я делаю не так?

Ответы [ 2 ]

1 голос
/ 25 октября 2010

Вы предоставляете веб-браузеру html формы, данные POST - это сериализованный формат имен и значений полей формы, который вам нужно добавить в метод Navigate.

postdata должен быть в формате:

inputname1=value1&inputname2=value2&inputname3=value3

Вам также необходимо кодировать строку uri и включать Content-Type: application/x-www-form-urlencoded в качестве четвертого параметра в вызове метода.

0 голосов
/ 25 октября 2010

Ваш формат POST неверен.

См. спецификацию .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...