using wininet in C++ -


i have server if sent "https://mydomain/dir1/dir2/login.html?u=1234&t=5678" respond xml document. know how can in wininet?

here have done far:

std::string getlogindata(void) {     hinternet hinternet, hconnection, hrequest;     std::string retval;      hinternet = internetopen(l"my application", internet_open_type_direct, null, null, 0);     if(null != hinternet)     {         hconnection = internetconnect(hinternet, l"mydomain", internet_default_https_port, l"", l"", internet_service_http, 0, null);         if(null != hconnection)         {             const wchar_t* lplpszaccepttypes[] = {l"text/xml", l"application/xml", l"application/xhtml+xml", null};              hrequest = httpopenrequest(hconnection, l"get", l"dir1/dir2/login.html", null, null, lplpszaccepttypes,                 internet_flag_dont_cache | internet_flag_ignore_cert_cn_invalid | internet_flag_ignore_cert_date_invalid |                 internet_flag_ignore_redirect_to_http | internet_flag_ignore_redirect_to_https | internet_flag_keep_connection |                 internet_flag_no_auth | internet_flag_no_ui | internet_flag_pragma_nocache, 0);             if(null != hrequest)             {                 const char params[] = {"u=1234&t=5678"};                  bool rc = httpsendrequest(hrequest, null, 0, (void*)params, strlen(params));                  if(rc) // here rc = 0 , getlasterror() returns 12152                 {                     dword availdatalen;                     char buff[4096];                     dword readcount = error_internet_connection_reset;                      internetquerydataavailable(hinternet, &availdatalen, 0, 0);                     while(0 < availdatalen)                     {                         internetreadfile(hinternet, buff, min(sizeof(buff), availdatalen), &readcount);                         availdatalen -= readcount;                         retval = retval + buff;                     }                 }                 internetclosehandle(hrequest);             }             internetclosehandle(hconnection);         }         internetclosehandle(hinternet);     }     return retval; } 

but can see in code httpsendrequest() fails , getlasterror() returns 12152

thank in advance sam

that's error_winhttp_invalid_server_response. best guess you're making http request on https port.

i don't know api looks need add internet_flag_secure httpopenrequest call, , / or in flags parameter of internetconnect call too:

internet_flag_secure
uses secure transaction semantics. translates using secure sockets layer/private communications technology (ssl/pct) , meaningful in http requests. flag used httpopenrequest , internetopenurl, redundant if https:// appears in url.the internetconnect function uses flag http connections; request handles created under connection inherit flag.


Comments

Popular posts from this blog

php - What is the difference between $_SERVER['PATH_INFO'] and $_SERVER['ORIG_PATH_INFO']? -

fortran - Function return type mismatch -

queue - mq_receive: message too long -