Tôi đã chơi với thư viện Poco Net một thời gian, nó khá là đẹp. Rất thuận tiện và dễ hiểu.Xác thực proxy trong thư viện Net C++ của POCO
Tôi có thể đặt địa chỉ proxy và yêu cầu cấp phép proxy 407, đúng cách. Tôi đã nhận thấy rằng
HTTPRequest req(HTTPRequest::HTTP_GET, path, HTTPMessage::HTTP_1_1);
req.setCredentials(scheme, authInfo);
Tôi đã thử các giá trị như "cơ bản", "văn bản thuần" trong lược đồ và "người dùng: mật khẩu" trong authInfo. Nó dường như không hoạt động. Google không giúp đỡ.
Có ai đã thực hiện việc này bằng Poco Net trước đó không? Hoặc là việc sử dụng rõ ràng và tôi không thể làm cho nó hoạt động vì sự thiếu hiểu biết của tôi đối với xác thực proxy nói chung? Làm ơn cho lời khuyên.
EDIT: Sau khi thêm một số hoạt động xung quanh, tôi nghĩ chức năng setCredentials được sử dụng khi máy chủ từ xa đang chờ thông tin xác thực đăng nhập. Tôi đã không thể tìm ra cách để thực hiện xác thực proxy bằng các thư viện Poco Net. Tôi đã có thể thiết lập máy chủ proxy và cổng mặc dù. Đây là những gì tôi sẽ có nếu chỉ có một máy chủ proxy mà không cần xác thực:
HTTPClientSession session(uri.getHost(), uri.getPort());
HTTPRequest req(HTTPRequest::HTTP_GET, path, HTTPMessage::HTTP_1_1);
session.setProxy("host", port);
session.sendRequest(req);
Cần trợ giúp.
EDIT: Dựa trên các giải pháp được đề xuất bởi @StackedCrooked, tôi cố gắng thiết lập chi tiết xác thực proxy để tiêu đề yêu cầu trước khi đưa ra yêu cầu, và trong cách tiếp cận khác tìm thấy trên internet, tôi đặt chi tiết auth proxy chỉ sau khi thực hiện một yêu cầu ban đầu và lỗi 407 xuất hiện, sau đó thực hiện lại yêu cầu. Cả hai phương pháp tiếp tục đưa ra cùng một lỗi 407. Mã hiện tại của tôi trông giống như sau:
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);
Bạn có thể đặt một testcase trên codepad.org hoặc một cái gì đó không? Tôi rất muốn thử nó chống lại proxy của tôi. – joshperry
Tôi tin rằng tiêu đề chính xác, như @StackedCrooked được đề xuất, là "Ủy quyền ủy quyền" thay vì "Xác thực proxy". Mã thực sự của bạn có sử dụng mã đúng không? –