69,378
社区成员
发帖
与我相关
我的任务
分享
CoInitialize(NULL);
CComPtr<IXMLHttpRequest> spHttp;
if (FAILED(spHttp.CoCreateInstance(__uuidof(XMLHTTPRequest))) || !spHttp)
{
return -1;
}
CString strURL;
_variant_t varp(false);
_variant_t vusername(_T(""));
_variant_t vpassword(_T(""));
BSTR bstrResponse;
strURL.Format(_T("http://%s:%d/MessageService"), pszGateWayIP, usGatePort);
spHttp->open(_bstr_t("POST"), _bstr_t(strURL), varp, vusername, vpassword);
spHttp->send(_variant_t(_bstr_t(pszReqInfo)));
spHttp->get_responseText(&bstrResponse);
strReponseHttpBody = (LPCTSTR)_bstr_t(bstrResponse);
WSADATA wsaData;
int err;
SOCKET serverConnGateSock;
struct sockaddr_in serverConnGateAddr;
char msgServerRecvFromGate[MSG_SIZE];
char msg_get_original[MSG_SIZE];
char len[30];
sprintf_s(len, 30, "%d", strlen(csRndRequestXML));
sprintf_s(msg_get_original, MSG_SIZE,
"POST /MessageService HTTP/1.1\r\n"
"Accept: */*"
"Accept-Encoding: gzip, deflate"
"Host: %s:%d\r\n"
"Content-Length: %s"
"Connection: Keep-Alive"
"Cache-Control: no-cache"
"\r\n\r\n"
"%s"
, gate_ip, gate_port, len, csRndRequestXML);
err = WSAStartup(MAKEWORD(2,2), &wsaData);
if (err != 0)
{
printf("[ERROR] WSAStartup failed in SendRequest_Plain!\n");
exit(0);
}
serverConnGateSock = socket(AF_INET, SOCK_STREAM, 0);
if (serverConnGateSock == INVALID_SOCKET)
{
printf("[ERROR] socket() failed in SendRequest_Plain!\n");
WSACleanup();
return -1;
}
serverConnGateAddr.sin_family = AF_INET;
serverConnGateAddr.sin_port = htons(gate_port);
serverConnGateAddr.sin_addr.s_addr = inet_addr(gate_ip);
err = connect(serverConnGateSock, (struct sockaddr *)&serverConnGateAddr, sizeof(struct sockaddr));
if (INVALID_SOCKET == err)
{
printf("[ERROR] connect() failed in SendRequest_Plain!\n");
closesocket(serverConnGateSock);
WSACleanup();
return -2;
} else {
printf("[conn] server conn gate success\n");
}
err = send(serverConnGateSock, msg_get_original, (int)strlen(msg_get_original), 0);
if (err >= 0)
{
printf("[Success] send %d out!", err);
} else if (SOCKET_ERROR == err) {
printf("[Error] send failed!");
}
err = recv(serverConnGateSock, msg_get_original, (int)strlen(msg_get_original), 0);
if (err == SOCKET_ERROR )
{
printf("[ERROR] recv() failed in SendRequest_Plain!\n");
//closesocket(serverConnGateSock);
//WSACleanup();
//return -4;
} else if (err > 0) {
printf("[Success] recv() in SendRequest_Plain!\n\t[msgServerRecvFromGate]\n%s",msgServerRecvFromGate);
} else if (err == 0)
{
printf("[ERROR] recv() failed, connect close\n");
}
csRequest[0] = '\0';
strcat_s(csRequest, size, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
strcat_s(csRequest, size, "<message>\r\n");
strcat_s(csRequest, size, "<head>\r\n");
strcat_s(csRequest, size, "<version>1.0</version>\r\n");
strcat_s(csRequest, size, "<serviceType>OriginalService</serviceType>\r\n");
strcat_s(csRequest, size, "</head>\r\n");
strcat_s(csRequest, size, "<body>\r\n");
strcat_s(csRequest, size, "<appId>");
strcat_s(csRequest, size, app_id);
strcat_s(csRequest, size, "</appId>\r\n");
strcat_s(csRequest, size, "</body>\r\n");
strcat_s(csRequest, size, "</message>\r\n");