Ms http server api
v2 (동기 모드)를 사용하는 웹 서버를 구현 중이며 웹 브라우저에서 테스트하려고합니다.HttpSendHttpResponse 데이터가 전송되지 않았습니다.
브라우저에서 GET 요청을 http://localhost:50000/uri/으로 보내면 응용 프로그램이 올바르게 수신합니다. 그런 다음 HttpSendHttpResponse
을 사용하여 일부 데이터 (HTTP_DATA_CHUNK
)를 보내면 131 바이트가 전송됩니다. 그러나 브라우저에 데이터가 수신되지 않습니다. 동일한 결과가있는 wininet
고객과 테스트를 거쳤습니다.
이 내 보내기 응답 코드 (스몰 토크)입니다 :
sendResponse: aString
| data response sent id return |
data := HTTP_DATA_CHUNK external
data
DataChunkType: 0;
pBuffer: aString copyToExternalMemory;
BufferLength: aString size.
response := HTTP_RESPONSE_V2 external.
response
version1;
StatusCode: HTTP_STATUS_OK;
reason: 'Ok';
ContentType: 'text/html';
EntityChunkCount: 1;
dataChunk: data.
sent := ExternalLong external.
return := HttpServerDLL current
HttpSendHttpResponse: handle
RequestId: request id
Flags: 0
pHttpResponse: response asParameter
pCachePolicy: 0
pBytesSent: sent asParameter
pReserved2: 0
Reserved3: 0
pOverlapped: 0
pLogData: 0.
return = 0 ifFalse: [^self osError: return].
^sent asInteger
HttpSendHttpResponse 기능의 성공과는 n 바이트가 전송되었음을 표시하는 경우 이유에 대해 어떤 생각, 데이터를 수신하지 않는 클라이언트?
덕분에, 세바스찬
감사합니다'HttpSendHttpResponse'는, HTTP 헤더입니다'HttpSendResponseEntityBody' 데이터 –
감사입니다 @AlexK., 나는 HttpSendHttpResponse도 한 번의 호출로 데이터를 보낼 수 있다는 것을 알고있다. 나는 MSDN 샘플 [https://msdn.microsoft.com/en-us/library/windows/desktop/aa364640(v=vs.85).aspx]을 따르고 있으며, 거기에 일부 텍스트가 HttpSendHttpResponse를 사용하는 데이터 청크 버퍼. 어쨌든'HttpSendResponseEntityBody'를 호출 해 보겠습니다. –
나는 그것을 할 수 있는지 몰랐다. [MSDN "비고"] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa364499%28v=vs.85%29.aspx) * "HttpSendHttpResponse 함수는 응답 헤더를 생성하고 보내는 데 사용되며 HttpSendResponseEntityBody 함수는 필요에 따라 엔티티 본문 데이터를 전송하는 데 사용할 수 있습니다."* –