Accessing any server using http(s)
#include <iostream> #include "msparser.hpp" using namespace matrix_science; int main(int argc, char ** argv) { std::string url, action, httpUserName, httpPassword, username, password; if (argc == 3 || argc == 5 || argc == 7) { url = argv[1]; action = argv[2]; if(argc == 5 || argc == 7) { httpUserName = argv[3]; httpPassword = argv[4]; } if (argc == 7) { username = argv[5]; password = argv[6]; } } else { std::cerr << "Usage: " << argv[0] << " <url> <action> [httpUserName] [httpPassword] [username] [password]" << std::endl; return 1; } std::cout << "url: " << url << " action: " << action; if(httpUserName != "") { std::cout << " httpUserName: " << httpUserName << " httpPassword: " << httpPassword; } if(username != "") { std::cout << " username: " << username << " password: " << password; } std::cout << std::endl; ms_connection_settings connectionSettings; connectionSettings.setUserAgent("CppTest/1.0" + connectionSettings.getUserAgent()); if(httpUserName != "") { connectionSettings.setHttpUsername(httpUserName); } if(httpPassword != "") { connectionSettings.setHttpPassword(httpPassword); } ms_http_helper httpHelper(url, connectionSettings); if(!httpHelper.isValid()) { std::cout << "Error: " << httpHelper.getLastErrorString() << std::endl; for(int i = 0 ; httpHelper.getErrorHandler() && i < httpHelper.getErrorHandler()->getNumberOfErrors() ; i++ ) { std::cout << "Error number: " << httpHelper.getErrorHandler()->getErrorNumber(i) << " (" << httpHelper.getErrorHandler()->getErrorRepeats(i) << " times) : " << httpHelper.getErrorHandler()->getErrorString(i) << std::endl; } std::cout << std::endl; return -1; } std::string httpGETString; ms_http_helper_return helperReturn_string(httpHelper.httpGetString(action, httpGETString)); if(helperReturn_string.isOk()) { std::cout << "httpGETString - OK: " << std::endl << httpGETString << std::endl; } else { std::cout << "httpGETString - Error: " << helperReturn_string.getErrorText() << " (" << helperReturn_string.getHttpStatusCode() << ")" << std::endl; } std::string header; ms_http_helper_return helperReturn_header(httpHelper.httpGetHeader("", header)); if(helperReturn_header.isOk()) { std::cout << "httpGetHeader - OK : " << std::endl << header << std::endl; } else { std::cout << "httpGetHeader - Error: " << helperReturn_header.getErrorText() << " (" << helperReturn_header.getHttpStatusCode() << ")" << std::endl; } ms_http_helper_return helperReturn_buffer(httpHelper.httpBufferedOpen("")); if(helperReturn_buffer.isOk()) { std::cout << "httpBufferedOpen - OK :" << std::endl; std::string buffer; while (true) { ms_http_helper_return result = httpHelper.httpBufferedGetString(buffer, 10000); if (buffer.length() == 0 || !result.isOk()) { break; } std::cout << buffer; } httpHelper.httpBufferedClose(); } else { std::cout << "httpBufferedOpen - Error: " << helperReturn_buffer.getErrorText() << " (" << helperReturn_buffer.getHttpStatusCode() << ")" << std::endl; } std::cout << std::endl; return 0; }
Copyright © 2022 Matrix Science Ltd. All Rights Reserved. Generated on Thu Mar 31 2022 01:12:29 |