假设页面为:login.asp
<%
User= Trim(Request.Form("User"))
Password = Trim(Request.Form("Password"))
'User = Trim(Request.QueryString("User"))
'Password = Trim(Request.QueryString("Password"))
Response.Write "User = "& User
Response.Write "Password = "& Password
%>
请问怎样向HTTP服务器POST数据,并得到服务器响应结果?
用WinHTTP实现
<%
User= Trim(Request.Form("User"))
Password = Trim(Request.Form("Password"))
'User = Trim(Request.QueryString("User"))
'Password = Trim(Request.QueryString("Password"))
Response.Write "User = "& User
Response.Write "Password = "& Password
%>
请问怎样向HTTP服务器POST数据,并得到服务器响应结果?
用WinHTTP实现
CInternetSession::GetHttpConnection
CHttpConnection::OpenRequest
CHttpFile::SendRequest
CHttpFile::Read
// Use WinHttpOpen to obtain a session handle.
hSession = WinHttpOpen(L" Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)",
WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,
WINHTTP_NO_PROXY_NAME,
WINHTTP_NO_PROXY_BYPASS, 0);
// Specify an HTTP server.
if (hSession)
hConnect = WinHttpConnect(hSession, L"robert.game.com",
INTERNET_DEFAULT_HTTP_PORT, 0);
// Create an HTTP Request handle.
if (hConnect)
hRequest = WinHttpOpenRequest(hConnect, L"POST", L"/post.asp",
NULL, L"Content-Type: application/x-www-form-urlencoded",
WINHTTP_DEFAULT_ACCEPT_TYPES,
0); // Send a Request.
if (hRequest)
bResults = WinHttpSendRequest(hRequest,
WINHTTP_NO_ADDITIONAL_HEADERS, 0,
pszData, strlen(pszData),
strlen(pszData), 0); // End the request.
if (bResults)
bResults = WinHttpReceiveResponse(hRequest, NULL); if(bResults)
{
do
{
// Check for available data.
dwSize = 0;
if(!WinHttpQueryDataAvailable(hRequest, &dwSize))
AfxMessageBox("Error %u in WinHttpQueryDataAvailable.\n",
GetLastError());
// Allocate space for the buffer.
pszOutBuffer = new char[dwSize+1];
if(!pszOutBuffer)
{
AfxMessageBox("Out of memory\n");
dwSize=0;
}
else
{
// Read the data.
ZeroMemory(pszOutBuffer, dwSize+1);
if( !WinHttpReadData(hRequest, (LPVOID)pszOutBuffer,
dwSize, &dwRead ))
AfxMessageBox("Error %u in WinHttpReadData.\n", GetLastError( ));
else
AfxMessageBox(pszOutBuffer);
// Free the memory allocated to the buffer.
delete[] pszOutBuffer;
}
} while( dwSize > 0 );
}
// Report any errors.
if (!bResults)
{
char strbuf[125];
sprintf(strbuf, "Error %d has occurred.\n",GetLastError());
AfxMessageBox(strbuf);
}
// Close any open handles.
if (hRequest) WinHttpCloseHandle(hRequest);
if (hConnect) WinHttpCloseHandle(hConnect);
if (hSession) WinHttpCloseHandle(hSession);
如果要向页面提交表单,要加Http头"Content-Type:application/x-www-form-urlencoded"
如果要向页面提交表单和上传文件,要加Http头“Content-Type: application/x-www-form-urlencoded”
CInternetSession::GetHttpConnection
CHttpConnection::OpenRequest
CHttpFile::SendRequest
CHttpFile::Read 具体怎么实现呢 请给我详细代码好不 谢谢了 很急