Я давно играю с библиотекой Poco Net, это довольно приятно. Очень удобно и легко понять.
Мне удалось установить адрес прокси-сервера, и он говорит, что 407 прокси-сервер требуется авторизация, правильно. Я понял, что
HTTPRequest req(HTTPRequest::HTTP_GET, path, HTTPMessage::HTTP_1_1);
req.setCredentials(scheme, authInfo);
Я пробовал значения как «basic», «text» в схеме и «user: password» в authInfo. Это не похоже на работу. Google не помогает.
Кто-нибудь делал это раньше, используя Poco Net? Или использование очевидно, и я не могу заставить его работать из-за моего невежества по отношению к проверке подлинности прокси в целом? Пожалуйста, совет.
РЕДАКТИРОВАТЬ: После некоторой дополнительной игры, я думаю, функция setCredentials используется, когда удаленный сервер ожидает аутентификации для входа в систему. Мне не удалось найти способ выполнить проверку подлинности прокси с использованием библиотек Poco Net. Я был в состоянии установить прокси-сервер и порт, хотя. Вот что бы я имел, если бы был только прокси-сервер без аутентификации:
HTTPClientSession session(uri.getHost(), uri.getPort());
HTTPRequest req(HTTPRequest::HTTP_GET, path, HTTPMessage::HTTP_1_1);
session.setProxy("host", port);
session.sendRequest(req);
Нужна помощь.
РЕДАКТИРОВАТЬ: Исходя из решения, предложенного @StackedCrooked, я пытался задать детали проверки подлинности прокси в заголовке запроса перед выполнением запроса, и в другом подходе, найденном в Интернете, я установил только данные проверки подлинности прокси после первоначального запроса появляется ошибка 407, а затем снова выполняется запрос. Оба метода продолжали выдавать одну и ту же ошибку 407. Мой текущий код выглядит так:
HTTPClientSession session(uri.getHost(), uri.getPort());
HTTPRequest req(HTTPRequest::HTTP_GET, path, HTTPMessage::HTTP_1_1);
session.setProxy("10.7.128.1", 8080);
req.set("Proxy-Authentication", "Basic bGVlbGE6bGVlbGExMjM=");
session.sendRequest(req);