废话不多说,直接上代码
#include <stdio.h>
#include "winsock2.h"
#include <string.h>
#pragma comment(lib, "ws2_32.lib")
#define IPSTR "127.0.0.1"
#define PORT 8080
#define BUFSIZE 1024
int getResponse(char *httpHeader,int getLength){
SOCKET sSocket = INVALID_SOCKET;
SOCKADDR_IN stSvrAddrIn = {0};
char sndBuf[1024] = {0};
char rcvBuf[1024000] = {0};
char *pRcv = rcvBuf;
int num = 0;
int nRet = SOCKET_ERROR;
WSADATA wsaData;
char *delims= {"\n"} ;
char *p;
sprintf(sndBuf,httpHeader);
WSAStartup(MAKEWORD(2, 0), &wsaData);
stSvrAddrIn.sin_family = AF_INET;
stSvrAddrIn.sin_port = htons(PORT);
stSvrAddrIn.sin_addr.s_addr = inet_addr(IPSTR);
sSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
nRet = connect(sSocket, (SOCKADDR*)&stSvrAddrIn, sizeof(SOCKADDR));
if (SOCKET_ERROR == nRet) {
printf("connect fail!/n");
return -1;
}
send(sSocket, (char*)sndBuf, sizeof(sndBuf), 0);
while(1) {
num = recv(sSocket, pRcv, sizeof(pRcv), 0);
pRcv += num;
if((0 == num) || (-1 == num)) {
break ;
}
}
p=strtok(rcvBuf,"\n");
int i = 0;
while(p!=NULL) {
if(i == getLength)
printf("word: %s\n",p);
i++;
p=strtok(NULL,delims);
}
return 1;
}
int getRequest(char *mapping,char *host){
char httpHeader[2048];
sprintf(httpHeader,
"GET %s HTTP/1.1\r\n"
"Host: %s\r\n"
"User-Agent: IE or Chrome\r\n"
"Accept-Type: */*\r\n"
"Connection: Close\r\n\r\n",mapping,host);
int getStat = getResponse(httpHeader,13);
return getStat;
}
int postRequest(char *mapping,char *host,char *lenStr,char *message){
char httpHeader[2048];
sprintf(httpHeader,"POST %s HTTP/1.1\r\n"
"Host: %s\n"
"Connection: Close\r\n"
"Content-Type: application/json\n"
"Content-Length: %s\n\n"
"%s"
,mapping,host,lenStr,message);
int postStat = getResponse(httpHeader,13);
}
int main() {
char mapping[1024],host[1024],message[2048], lenStr[1024];
int len;
sprintf(mapping,"/admin");
sprintf(host,"%s:%d",IPSTR,PORT);
getRequest(mapping,host);
sprintf(mapping,"/withBody1");
sprintf(message,
"{\"Type\":1, "
" \"Dev\":1,\"Ch\":1, "
" \"Data\":{ "
" \"AlarmCh\":1,\"AlarmOutCount\":1,\"AlarmType\":1 "
"}}");
len = strlen(message);
sprintf(lenStr,"%d",len);
postRequest(mapping,host,lenStr,message);
}
注意
手动配置
编译时一定要加入**-lwsock32**命令
添加方式如下
C++版本:https://blog.csdn.net/weixin_45721882/article/details/120932895
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)