64,676
社区成员
发帖
与我相关
我的任务
分享
HTTP_RESPONSE response;
DWORD result;
DWORD bytesSent;
PUCHAR pEntityBuffer;
ULONG EntityBufferLength;
ULONG BytesRead;
ULONG TempFileBytesWritten;
HANDLE hTempFile;
TCHAR szTempName[MAX_PATH + 1];
CHAR szContentLength[MAX_ULONG_STR];
HTTP_DATA_CHUNK dataChunk;
ULONG TotalBytesRead = 0;
ULONG pSend = 0;
EntityBufferLength = 2048;
pEntityBuffer = (PUCHAR) ALLOC_MEM( EntityBufferLength );
memset(pEntityBuffer, 0, EntityBufferLength);
INITIALIZE_HTTP_RESPONSE(&response, 200, "OK");
ADD_KNOWN_HEADER(response, HttpHeaderContentType, "text/html");
sprintf_s(szContentLength, MAX_ULONG_STR, "%lu", TotalBytesRead);
ADD_KNOWN_HEADER(
response,
HttpHeaderContentLength,
szContentLength
);
response.pEntityChunks = 0;
response.EntityChunkCount = 0;
result =
HttpSendHttpResponse(
hReqQueue, // ReqQueueHandle
pRequest->RequestId, // Request ID
HTTP_SEND_RESPONSE_FLAG_MORE_DATA,
&response, // HTTP response
NULL, // pReserved1
&bytesSent, // bytes sent-optional
NULL, // pReserved2
0, // Reserved3
NULL, // LPOVERLAPPED
NULL // pReserved4
);
if(result != NO_ERROR)
{
wprintf(
L"HttpSendHttpResponse failed with %lu \n",
result
);
goto Done;
}
dataChunk.DataChunkType = HttpDataChunkFromMemory;
dataChunk.FromMemory.pBuffer = "\r\n0\r\n";
dataChunk.FromMemory.BufferLength = 5;
result = HttpSendResponseEntityBody(
hReqQueue,
pRequest->RequestId,
0, // 0 This is the last send.
1, // Entity Chunk Count.
&dataChunk,
&pSend,
NULL,
0,
NULL,
NULL
);
if(result != NO_ERROR)
{
wprintf(
L"HttpSendResponseEntityBody failed %lu\n",
result
);
}
goto Done;
break;
<html><body><script type="text/javascript">
var request = new XMLHttpRequest();
alert("sss");
request.open('POST', 'http://127.0.0.1:80/test', false);
alert('Welcome to\ndreamdu!');
request.send("hello");
if (200 == request.status) {
alert (request.responseText);
}
alert("Hello dreamdu!");
alert (request.status);
</script></body></html>
这是前端的代码 刚开始接触winhttp 就大神请教