POST на веб-страницу в vb.net (формы win, рабочий стол, а не ASP.net) - PullRequest
1 голос
/ 11 апреля 2010

У меня есть различные PHP-файлы, к которым публикуются данные (например, пароль, когда пользователь входит в систему). Как я могу публиковать эти PHP-файлы с vb.net (настольное приложение под управлением Windows Forms, это не касается ASP.net? )

1 Ответ

3 голосов
/ 11 апреля 2010

Вы можете использовать класс WebClient. Вам нужно установить для заголовка Content-Type значение application/x-www-form-urlencoded, а затем использовать метод UploadData. Документация для этого метода содержит простой пример, который сводится к следующему:

Dim myWebClient As New WebClient()
myWebClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded")

Dim responseArray = myWebClient.UploadData("https://...", "POST", Encoding.ASCII.GetBytes(postData))
Dim response = Encoding.ASCII.GetString(responseArray)

Страница Википедии HTTP POST содержит информацию о том, как должны быть закодированы данные POST:

Каждая пара ключ-значение отделяется символом «&», а каждая клавиша отделяется от своего значения символом «=». Ключи и значения экранируются, заменяя пробелы символом «+», а затем используя кодировку URL для всех остальных символов.

Итак, ваша переменная postData может быть заполнена следующим образом (при условии, что поля, которые вы хотите опубликовать, называются Имя пользователя и Пароль):

Dim postData = String.Format("Username={0}&Password={1}", _
  HttpUtility.UrlEncode(username), _
  HttpUtility.UrlEncode(password))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...