Skip to content

Commit 34cc505

Browse files
committed
modify:request url method for center
modify:option method name to get
1 parent 8bfa5bc commit 34cc505

File tree

1 file changed

+49
-32
lines changed

1 file changed

+49
-32
lines changed

XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp

Lines changed: 49 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -46,19 +46,27 @@ bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int
4646
int nRVLen = 2048;
4747
XCHAR tszSDBuffer[2048] = {};
4848
XCHAR tszRVBuffer[2048] = {};
49-
XCHAR tszAPIVersion[64];
50-
XCHAR tszAPIMethod[64];
51-
XCHAR tszAPIName[64];
52-
RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam;
53-
54-
memset(tszAPIVersion, '\0', sizeof(tszAPIVersion));
55-
memset(tszAPIMethod, '\0', sizeof(tszAPIMethod));
56-
memset(tszAPIName, '\0', sizeof(tszAPIName));
57-
memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM));
49+
XCHAR tszStrKey[MAX_PATH] = {};
50+
XCHAR tszStrVlu[MAX_PATH] = {};
51+
RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam = {};
5852

5953
LPCXSTR lpszMethodPost = _X("POST");
60-
LPCXSTR lpszMethodOption = _X("OPTIONS");
54+
LPCXSTR lpszMethodGet = _X("GET");
6155

56+
XCHAR** pptszUrlList;
57+
XCHAR tszUrlName[128];
58+
int nUrlCount = 0;
59+
//得到URL参数个数
60+
HttpProtocol_ServerHelp_GetParament(pSt_HTTPParam->tszHttpUri, &pptszUrlList, &nUrlCount, tszUrlName);
61+
if (nUrlCount < 1)
62+
{
63+
st_HDRParam.nHttpCode = 404;
64+
HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
65+
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen);
66+
BaseLib_Memory_Free((XPPPMEM)&pptszUrlList, nUrlCount);
67+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri);
68+
return false;
69+
}
6270
st_HDRParam.bIsClose = true;
6371
st_HDRParam.nHttpCode = 200;
6472
if (st_ServiceCfg.st_XProxy.bAuthPass)
@@ -101,39 +109,48 @@ bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int
101109

102110
if (0 == _tcsxnicmp(lpszMethodPost, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodPost)))
103111
{
104-
LPCXSTR lpszMethodPass = _X("Pass");
105-
LPCXSTR lpszMehtodManage = _X("Manage");
106-
LPCXSTR lpszMehtodAction = _X("Action");
112+
LPCXSTR lpszAPIPass = _X("Pass");
113+
LPCXSTR lpszAPIManage = _X("Manage");
114+
LPCXSTR lpszAPIAction = _X("Action");
107115

108-
if (!HttpProtocol_ServerHelp_GetUrlApi(pSt_HTTPParam->tszHttpUri, tszAPIVersion, tszAPIMethod, tszAPIName))
109-
{
110-
Protocol_StoragePacket_HTTPPacket(tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_APINAME, "api name is incorrect");
111-
HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
112-
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
113-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("业务客户端:%s,请求的API不支持"), lpszClientAddr);
114-
return false;
115-
}
116+
BaseLib_String_GetKeyValueA(pptszUrlList[0], "=", tszStrKey, tszStrVlu);
116117
//通知类型.用于多服务器
117-
if (0 == _tcsxnicmp(lpszMethodPass, tszAPIMethod, _tcsxlen(lpszMethodPass)))
118+
if (0 == _tcsxnicmp(lpszAPIPass, tszStrVlu, _tcsxlen(lpszAPIPass)))
118119
{
119-
XEngine_Task_Pass(tszAPIName, lpszClientAddr, lpszMsgBuffer, nMsgLen, pSt_HTTPParam, pptszListHdr, nHdrCount);
120+
//http://127.0.0.1:5100/api?function=pass&param=xxx
121+
memset(tszStrVlu, '\0', sizeof(tszStrVlu));
122+
BaseLib_String_GetKeyValueA(pptszUrlList[1], "=", tszStrKey, tszStrVlu);
123+
XEngine_Task_Pass(tszStrVlu, lpszClientAddr, lpszMsgBuffer, nMsgLen, pSt_HTTPParam, pptszListHdr, nHdrCount);
120124
}
121-
else if (0 == _tcsxnicmp(lpszMehtodManage, tszAPIMethod, _tcsxlen(lpszMehtodManage)))
125+
else if (0 == _tcsxnicmp(lpszAPIManage, tszStrVlu, _tcsxlen(lpszAPIManage)))
122126
{
123-
XEngine_Task_Manage(tszAPIName, lpszClientAddr, lpszMsgBuffer, nMsgLen, pSt_HTTPParam, pptszListHdr, nHdrCount);
127+
//http://127.0.0.1:5100/api?function=pass&param=xxx
128+
memset(tszStrVlu, '\0', sizeof(tszStrVlu));
129+
BaseLib_String_GetKeyValueA(pptszUrlList[1], "=", tszStrKey, tszStrVlu);
130+
XEngine_Task_Manage(tszStrVlu, lpszClientAddr, lpszMsgBuffer, nMsgLen, pSt_HTTPParam, pptszListHdr, nHdrCount);
124131
}
125-
else if (0 == _tcsxnicmp(lpszMehtodAction, tszAPIMethod, _tcsxlen(lpszMehtodAction)))
132+
else if (0 == _tcsxnicmp(lpszAPIAction, tszStrVlu, _tcsxlen(lpszAPIAction)))
126133
{
127-
Storage_TaskAction(tszAPIName, lpszClientAddr, lpszMsgBuffer, nMsgLen, pSt_HTTPParam);
134+
//http://127.0.0.1:5100/api?function=pass&param=xxx
135+
memset(tszStrVlu, '\0', sizeof(tszStrVlu));
136+
BaseLib_String_GetKeyValueA(pptszUrlList[1], "=", tszStrKey, tszStrVlu);
137+
Storage_TaskAction(tszStrVlu, lpszClientAddr, lpszMsgBuffer, nMsgLen, pSt_HTTPParam);
128138
}
129139
}
130-
else if (0 == _tcsxnicmp(lpszMethodOption, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodOption)))
140+
else if (0 == _tcsxnicmp(lpszMethodGet, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodGet)))
131141
{
132142
//用于心跳
133-
LPCXSTR lpszHdrBuffer = _X("Allow: POST GET PUT\r\n");
134-
HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, lpszHdrBuffer);
135-
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
136-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,请求OPTIONS心跳方法成功"), lpszClientAddr);
143+
//http://127.0.0.1:5100/api?function=heart
144+
LPCXSTR lpszAPIHeart = _X("heart");
145+
146+
BaseLib_String_GetKeyValueA(pptszUrlList[0], "=", tszStrKey, tszStrVlu);
147+
if (0 == _tcsxnicmp(lpszAPIHeart, tszStrVlu, _tcsxlen(lpszAPIHeart)))
148+
{
149+
LPCXSTR lpszHdrBuffer = _X("Allow: POST GET PUT\r\n");
150+
HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, lpszHdrBuffer);
151+
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
152+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,请求GET心跳方法成功"), lpszClientAddr);
153+
}
137154
}
138155
else
139156
{

0 commit comments

Comments
 (0)