У меня есть сокет, который получает HTTP-запросы.
Итак, у меня есть необработанный http-запрос в виде байта [] из моего сокета.
Я должен изучить этот запрос - НО
Вместо изобретения колеса - могу ли я «привести» этот байтовый массив в System.Net.HttpWebRequest или что-то подобное?
----- ОБНОВЛЕНИЕ ---------
Так что в любом случае я не мог найти ответ. Копая немного дальше, хотя я думаю, что это можно сделать, вызвав функции в:
HttpApi.dll Я думаю, что HttpWebRequest использует эту dll (winxpsp2)
интересная структура HTTP_REQUEST
C++
typedef struct _HTTP_REQUEST {
ULONG Flags;
HTTP_CONNECTION_ID ConnectionId;
HTTP_REQUEST_ID RequestId;
HTTP_URL_CONTEXT UrlContext;
HTTP_VERSION Version;
HTTP_VERB Verb;
USHORT UnknownVerbLength;
USHORT RawUrlLength;
PCSTR pUnknownVerb;
PCSTR pRawUrl;
HTTP_COOKED_URL CookedUrl;
HTTP_TRANSPORT_ADDRESS Address;
HTTP_REQUEST_HEADERS Headers;
ULONGLONG BytesReceived;
USHORT EntityChunkCount;
PHTTP_DATA_CHUNK pEntityChunks;
HTTP_RAW_CONNECTION_ID RawConnectionId;
PHTTP_SSL_INFO pSslInfo;
}HTTP_REQUEST_V1, *PHTTP_REQUEST_V1;
Я только начал C #, поэтому углубился в ?? COM ?? программирование у меня над головой.
И, просматривая дукументацию, я не вижу «записи» (под которой я подразумеваю простую передачу байтов-> получение HTTP_REQUEST).
Anyhoo! если кто-нибудь захочет указать мне какой-нибудь замечательный HTTP-сервер WINDOWS KERNEL MODE, включающий SSL, то не стесняйтесь, это будет отличное чтение и что-то, что стоит рассмотреть в будущем.