前面我搭建了一个servlet,响应get/post请求,网页端已经实现get/post请求,这个时候我用c++编辑的程序也想发送post请求,于是,有了下面这段代码。
servlet地址:https://mp.csdn.net/mp_blog/creation/editor/120993971
废话不多说,上硬货:
发送函数代码:
void sendPostRequest()
{
//开始进行socket初始化;
WSADATA wData;
::WSAStartup(MAKEWORD(2,2),&wData);
SOCKET clientSocket = socket(AF_INET,1,0);
struct sockaddr_in ServerAddr = {0};
int Ret=0;
int AddrLen=0;
HANDLE hThread=0;
char *bufSend = "POST http://localhost:8080/Test001/Test001/HelloServlet HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n";
CString strIP = "127.0.0.1";
ServerAddr.sin_addr.s_addr = inet_addr(strIP);
ServerAddr.sin_port = htons(8080);;
ServerAddr.sin_family = AF_INET;
int errNo = 0;
errNo = connect(clientSocket,(sockaddr*)&ServerAddr,sizeof(ServerAddr));
if(errNo==0)
{
//如果发送成功,则返回发送成功的字节数;
if(send(clientSocket,bufSend ,strlen(bufSend),0)>0)
{
AfxMessageBox("发送成功");
}
}
else
{
errNo=WSAGetLastError();
}
//socket环境清理;
::WSACleanup();
}
注意里面地址的替换,我这是在本机上实验的,所以是localhost/127.0.0.1。
效果:
好了,研究研究怎么发送参数了。