C Enviar datos a la página web mediante POST. Hay un error. . Vale la pena pedirle a Dios que te salve. Por favor, perdóname. La imagen está mal.
Solo dos preguntas:
1. Los IDE superiores a VS2005 usan UNICODE de forma predeterminada. Si mezcla ANSI y UNICODE en su código, realiza una conversión forzada, lo que genera algunos errores de parámetros.
2.OpenRequest acepta dos parámetros diferentes. Dado que se utiliza HTTP_VERB_POST, ¿por qué necesitamos convertirlo a LPCTSTR? Esto hará que llame a otra función (C admite funciones del mismo nombre con diferentes parámetros).
¿Booleano? PostHttpPage(const?wstring amp?hostname,
?const?wstring amp?pathname,
?const?wstring amp?post data)
{ p>
¿Usar? ¿Espacio de nombres? std
¿CSesión de Internet? sesión(_T("sesión "), 0, INTERNET_OPEN_TYPE_PRECONFIG, NULL,
NULL, INTERNET_FLAG_DONT_Cache);? //No establecer almacenamiento en búfer
Internet_port? n puerto? =?80;
¿DWORD? dwRet? =?0;
ConexiónCHttp*? pServidor? =?Sesión. GetHttpConnection(
(LPCTSTR)hostName.c_str(), n puerto);
CHttpFile*? pArchivo? =?pServer- gt;OpenRequest(CHttpConnection::
HTTP_VERB_POST, (LPCTSTR)pathname.c_str());
CString? strEncabezados? =?l "Tipo de contenido:?aplicación/x-www-form-urlencoded";? //Encabezados de solicitud
//Comenzar a enviar la solicitud
pFile- gt; SendRequest(strHeaders, (LPVOID) postData.c_str(),
postdata. size ());
pFilegt; QueryInfoStatusCode(dwRet);
¿Si? (dwRet?==?HTTP_STATUS_OK)
{
CString? ¿El resultado? Salto de línea;
while(pFile->;ReadString(line break))
{//Bucle para leer cada línea.
¿El resultado? =?newline L " \ r \ n ";
}
STD::cout lt; ltresultlt ltSTD::endl;//Mostrar el contenido devuelto
}
Otros
{
¿Volver? Falso;
}
¿Eliminar? pFile
¿Eliminar? pServer
cout lt ltsesión "exitosa"
.
close();
¿Volver? True;
}
//Cuando llame, utilice el siguiente código
PostHttpPage(L"localhost ", L"welcome.php ", L " nombre = lluvia amp edad = 21");