Как мне отправить этот HTTP-запрос?

268
Markus Maring

Я пытаюсь прочитать некоторую информацию с веб-сайта ( http://www.ths-pinneberg.de/vplan/index.php?klasse=Q1c ). Вам понадобится пароль. У меня есть пароль, сохраненный на моем компьютере, но мой Arduino нет. Мой вопрос заключается в том, как должен выглядеть HTTP-запрос, когда я хочу отправить пароль в том же запросе. Мой текущий запрос выглядит так:

GET /vplan/index.php?klasse=Q1c HTTP/1.1 Host: www.ths-pinneberg.de User-Agent: arduino-ethernet Connection: close 

И Сервер отвечает:

HTTP/1.1 200 OK Date: Fri, 18 Aug 2017 19:06:56 GMT Server: Apache X-Powered-By: PHP/5.6.30-0+deb8u1 Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Set-Cookie: PHPSESSID=e8d2772544a40ce8f333befb78d6429e; path=/ Vary: Accept-Encoding Connection: close Transfer-Encoding: chunked Content-Type: text/html; charset=UTF-8  174 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html>  <head> <title>Vertretungspl&auml;ne an der THS</title> <meta name="generator" content="Bluefish 2.2.9" > <meta http-equiv="Content-Type" content="text/html; charset=iso8859-15"> <link rel="stylesheet" type="text/css" href="default.css">  </head> <body>  20e <div id='wrap'> <div id="header"> <!-- Grafik f&#252;r den Header--> <h1>Vertretungspl&auml;ne der THS Pinneberg</h1>  </div> <p></p><div class='login'><p>Du musst das g&uuml;ltige THS-Passwort eingeben!<br>Sie m&uuml;ssen das g&uuml;ltige THS-Passwort eingeben!</p><form action='/vplan/index.php' method='POST'><p>Passwort: <input type='password' name='password'><input type='submit' name='login' value='Anmelden'></p><p>&nbsp;</p><p><input type='checkbox' name='save_password'>Dauerhaft anmelden</p></form></div> 0 

Перевод второй последней строки: «Du musst das gültige THS-Passwort eingeben!» на «Вы должны ввести правильный пароль» «Passwort» на «пароль» «Anmelden» на «логин» «Dauerhaft anmelden» на «запомнить пароль»

Как должен выглядеть этот запрос?

0
Используйте Wireshark или Fiddler, чтобы захватить запрос и посмотреть на него. Затем просто повторите запрос. GiantTree 6 лет назад 1
Отправьте заголовок `Authorization` типа` Basic` с именем пользователя и паролем, закодированными в base64. Смотрите [здесь] (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization) для деталей. David Schwartz 6 лет назад 0

1 ответ на вопрос

1
Markus Maring

просто небольшое обновление, я решил свою проблему (спасибо GiantTree). Решение было в том, что я запрограммировал Arduino для отправки двух HTTP-запросов, потому что базовая авторизация не работала, потому что это просто не базовая аутентификация. Первый запрос идет на страницу входа в систему, чтобы показать его, а второй запрос заполняет имя входа и переходит в каталог, который я хотел увидеть. Надеюсь, что это помогает другим с той же проблемой.