Skip to content

Commit 10e662e

Browse files
committed
modify:after entering the HTTPTask_TastPost_Handle function, the url encoding starts to be processed.
1 parent 88bd31d commit 10e662e

File tree

2 files changed

+26
-21
lines changed

2 files changed

+26
-21
lines changed

XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -74,20 +74,30 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
7474
int nListCount = 0;
7575

7676
memset(tszUrlName, '\0', sizeof(tszUrlName));
77+
78+
XCHAR tszUrlBuffer[MAX_PATH] = {};
79+
XCHAR tszGBKBuffer[MAX_PATH] = {};
80+
OPenSsl_Codec_UrlDeCodec(pSt_HTTPParam->tszHttpUri, _tcsxlen(pSt_HTTPParam->tszHttpUri), tszUrlBuffer);
81+
#ifdef _MSC_BUILD
82+
int nCLen = _tcsxlen(tszUrlBuffer);
83+
BaseLib_OperatorCharset_UTFToAnsi(tszUrlBuffer, tszGBKBuffer, &nCLen);
84+
#else
85+
_tcsxcpy(tszGBKBuffer, pSt_HTTPParam->tszHttpUri);
86+
#endif
7787
//得到URL参数个数
78-
HttpProtocol_ServerHelp_GetParament(pSt_HTTPParam->tszHttpUri, &pptszList, &nListCount, tszUrlName);
88+
HttpProtocol_ServerHelp_GetParament(tszGBKBuffer, &pptszList, &nListCount, tszUrlName);
7989
if (nListCount < 1)
8090
{
8191
//是不是代理转发
82-
if (HTTPTask_TaskPost_SLProxy(lpszClientAddr, pSt_HTTPParam->tszHttpUri, ppptszHDRList, nHDRCount))
92+
if (HTTPTask_TaskPost_SLProxy(lpszClientAddr, tszGBKBuffer, ppptszHDRList, nHDRCount))
8393
{
8494
return true;
8595
}
8696
st_HDRParam.nHttpCode = 404;
8797
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam);
8898
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
8999
BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount);
90-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri);
100+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, tszGBKBuffer);
91101
return false;
92102
}
93103
XCHAR tszKey[MAX_PATH];
@@ -124,7 +134,7 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
124134
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam);
125135
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
126136
BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount);
127-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri);
137+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, tszGBKBuffer);
128138
return false;
129139
}
130140
//获得函数名
@@ -135,7 +145,7 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
135145
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam);
136146
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
137147
BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount);
138-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri);
148+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, tszGBKBuffer);
139149
return false;
140150
}
141151
//首先处理插件
@@ -159,7 +169,7 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
159169
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam);
160170
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
161171
BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount);
162-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri);
172+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, tszGBKBuffer);
163173
return false;
164174
}
165175
HTTPTask_TastPost_P2PClient(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue));
@@ -176,7 +186,7 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
176186
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam);
177187
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
178188
BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount);
179-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri);
189+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, tszGBKBuffer);
180190
return false;
181191
}
182192
HTTPTask_TastPost_PostCode(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue));
@@ -193,7 +203,7 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
193203
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam);
194204
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
195205
BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount);
196-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri);
206+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, tszGBKBuffer);
197207
return false;
198208
}
199209
HTTPTask_TastPost_LogInfo(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue));
@@ -210,7 +220,7 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
210220
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam);
211221
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
212222
BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount);
213-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri);
223+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, tszGBKBuffer);
214224
return false;
215225
}
216226
HTTPTask_TaskPost_QRCode(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue));
@@ -227,7 +237,7 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
227237
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam);
228238
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
229239
BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount);
230-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri);
240+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, tszGBKBuffer);
231241
return false;
232242
}
233243
HTTPTask_TastPost_SocketTest(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue));
@@ -244,7 +254,7 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
244254
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam);
245255
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
246256
BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount);
247-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri);
257+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, tszGBKBuffer);
248258
return false;
249259
}
250260
HTTPTask_TastPost_DTest(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue));
@@ -291,7 +301,7 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
291301
st_HDRParam.nHttpCode = 404;
292302
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam);
293303
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
294-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的请求不支持:%s,内容:\r\n%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri, lpszRVBuffer);
304+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的请求不支持:%s,内容:\r\n%s"), lpszClientAddr, tszGBKBuffer, lpszRVBuffer);
295305
}
296306
}
297307
else if (0 == _tcsxnicmp(lpszMethodGet, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodGet)))
@@ -315,7 +325,7 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
315325
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam);
316326
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
317327
BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount);
318-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri);
328+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, tszGBKBuffer);
319329
return false;
320330
}
321331
HTTPTask_TaskGet_IDCard(lpszClientAddr, tszValue);
@@ -332,7 +342,7 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
332342
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam);
333343
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
334344
BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount);
335-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri);
345+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, tszGBKBuffer);
336346
return false;
337347
}
338348
HTTPTask_TaskGet_BankInfo(lpszClientAddr, tszValue);
@@ -376,7 +386,7 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
376386
st_HDRParam.nHttpCode = 404;
377387
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam);
378388
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
379-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的请求不支持:%s,内容:\r\n%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri, lpszRVBuffer);
389+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的请求不支持:%s,内容:\r\n%s"), lpszClientAddr, tszGBKBuffer, lpszRVBuffer);
380390
}
381391
}
382392
else

XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.cpp

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,26 @@ bool HTTPTask_TaskGet_Translation(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer,
88
XCHAR* ptszBodyBuffer;
99
XCHAR tszMsgBuffer[4096];
1010
XCHAR tszPktBuffer[4096];
11-
XCHAR tszUrlBuffer[MAX_PATH];
1211
XCHAR tszTypeBuffer[64];
1312
XENGINE_LANGUAGEINFO st_LanguageInfo;
1413
RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; //发送给客户端的参数
1514

1615
memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer));
1716
memset(tszPktBuffer, '\0', sizeof(tszPktBuffer));
18-
memset(tszUrlBuffer, '\0', MAX_PATH);
1917
memset(tszTypeBuffer, '\0', sizeof(tszTypeBuffer));
2018
memset(&st_LanguageInfo, '\0', sizeof(XENGINE_LANGUAGEINFO));
2119
memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM));
2220

2321
st_HDRParam.nHttpCode = 200; //HTTP CODE码
2422
st_HDRParam.bIsClose = true; //收到回复后就关闭
2523

26-
XCHAR tszURLBuffer[MAX_PATH] = {};
2724
XCHAR tszSignStr[MAX_PATH] = {};
2825
XCHAR tszMD5Codec[MAX_PATH] = {};
2926
XCHAR tszMD5Str[MAX_PATH] = {};
3027
XCHAR tszURLStr[4096] = {};
3128

32-
OPenSsl_Codec_UrlDeCodec(lpszMsgBuffer, _tcsxlen(lpszMsgBuffer), tszURLBuffer);
33-
3429
int nRandomNumber = rand();
35-
int nLen = _xstprintf(tszSignStr, _X("%s%s%d%s"), st_ServiceConfig.st_XApi.st_TranslationInfo.tszAPPID, tszURLBuffer, nRandomNumber, st_ServiceConfig.st_XApi.st_TranslationInfo.tszAPPKey);
30+
int nLen = _xstprintf(tszSignStr, _X("%s%s%d%s"), st_ServiceConfig.st_XApi.st_TranslationInfo.tszAPPID, lpszMsgBuffer, nRandomNumber, st_ServiceConfig.st_XApi.st_TranslationInfo.tszAPPKey);
3631

3732
OPenSsl_Api_Digest(tszSignStr, (XBYTE*)tszMD5Codec, &nLen);
3833
for (int i = 0; i < 16; i++)

0 commit comments

Comments
 (0)