respuesta protocolo para headers español enviar encabezados dummies cabeceras c++ http upload wininet

c++ - protocolo - php cabeceras http



¿Hay algún buen ejemplo de carga http utilizando WinInet c++ library (3)

No puedo hacer que mi código funcione: /


Aquí hay un ejemplo rápido de Microsoft.

static TCHAR hdrs[] = _T("Content-Type: application/x-www-form-urlencoded"); static TCHAR frmdata[] = _T("name=John+Doe&userid=hithere&other=P%26Q"); static LPSTR accept[2]={"*/*", NULL}; // for clarity, error-checking has been removed HINTERNET hSession = InternetOpen("MyAgent", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); HINTERNET hConnect = InternetConnect(hSession, _T("ServerNameHere"), INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1); HINTERNET hRequest = HttpOpenRequest(hConnect, "POST", _T("FormActionHere"), NULL, NULL, accept, 0, 1); HttpSendRequest(hRequest, hdrs, strlen(hdrs), frmdata, strlen(frmdata)); // close any valid internet-handles

El ejemplo viene de aquí .


Eventualmente encontré algunos ejemplos de trabajo en la web

static char szRawData[5000]; memset(szRawData, 0x11, sizeof(szRawData)); // // CIHandle is just a wrapper class for HINTERNET, that closes handle in destructor // CIHandle hIntrn = InternetOpen( "LiveUpdate"), INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY, NULL, NULL, 0); if (!hIntrn) return printf("No Internet connection: %li./n", GetLastError()); CIHandle hConn = InternetConnect( hIntrn, "65.254.250.104", INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, NULL); if (!hConn) return printf("Connection to update server failed: %li./n", GetLastError()); DWORD dwOpenRequestFlags = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP | INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS | INTERNET_FLAG_KEEP_CONNECTION | INTERNET_FLAG_NO_AUTO_REDIRECT | INTERNET_FLAG_NO_COOKIES | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_NO_UI | INTERNET_FLAG_RELOAD; CIHandle hReq = HttpOpenRequest(hConn, "POST", "upload.php", "HTTP/1.0", NULL, NULL, dwOpenRequestFlags, NULL); ZString strBoundary = "---------------------------autoupdater"; ZString strContentHeader = "Host: www.mydomain_at_powweb.com/r/n" "Content-Type: multipart/form-data; boundary="; strContentHeader+=strBoundary; HttpAddRequestHeaders(hReq, strContentHeader, strContentHeader.length(), HTTP_ADDREQ_FLAG_ADD); ZString strHeaders; strHeaders.precache(16384); sprintf(strHeaders, "--%s/r/n" "Content-Disposition: form-data; name=/"userfile/"; " "filename=/"test.raw/"/r/n" "Content-Type: application/octet-stream/r/n/r/n", (LPCTSTR)strBoundary); tCharSeq s;//this is a just a dynamic array of bytes; // // append headers and file to request: // s.precache(16384); s.append(strHeaders.length(), strHeaders); //append with file data: s.append(2000, szRawData); //<------------------- depending on this size, SendRequest fails. //trailing end of data: s.append(4,"/r/n--"); s.append(strBoundary.length(), (LPTSTR)strBoundary); s.append(4,"--/r/n"); InternetSetOption(hReq, INTERNET_OPTION_USERNAME, "username/0", 9); InternetSetOption(hReq, INTERNET_OPTION_PASSWORD, "password/0", 9); if (!HttpSendRequest(hReq, NULL, 0, (void*)s.getBuffer(), s.length())) return printf("HttpSendRequest failed: %li./n", GetLastError());