http post c语言,天-C语言 基于TCP协议的HTTP请求 GET POST

#include 

#include 

#pragma  comment(lib,"ws2_32.lib")

int main(int argc, char* argv[])

{

WORD sockVersion = MAKEWORD(2,2);

WSADATA data;

if(WSAStartup(sockVersion, &data) != 0)

{

return 0;

}

//通过域名获取IP

struct hostent *host = gethostbyname("cube123.cn");

if(!host)exit(0);

char *ip = inet_ntoa( *(struct in_addr*)host->h_addr_list[0]);

//进行socket连接

SOCKET sclient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

if(sclient == INVALID_SOCKET)

{

printf("invalid socket !");

return 0;

}

struct sockaddr_in serAddr;

serAddr.sin_family = AF_INET;

serAddr.sin_port = htons(80);

serAddr.sin_addr.S_un.S_addr = inet_addr(ip);

if (connect(sclient, (struct sockaddr *)&serAddr, sizeof(serAddr)) == SOCKET_ERROR)

{

printf("connect error !");

closesocket(sclient);

return 0;

}

//设定HTTP协议头

char sendData[2048];

memset(sendData,0,2048);

strcat(sendData,"GET /default.asp HTTP/1.1\n");

strcat(sendData,"Host: www.baidu.com\n");

strcat(sendData,"Content-Type: text/html\n");

strcat(sendData,"\n");

strcat(sendData,"\r\n\r\n");

printf("%sOK",sendData);

send(sclient, sendData, strlen(sendData), 0);

char recData[255];

int ret = 1;

while(ret){

ret = recv(sclient, recData, 255, 0);

if(ret == SOCKET_ERROR||ret<255)break;

recData[ret] = 0x00;

//utf8转码,解决中文乱码

int unicodelen = MultiByteToWideChar(CP_UTF8,0,recData,-1,NULL,0) ;

wchar_t pUnicode[unicodelen];

memset(pUnicode,0,unicodelen*sizeof(wchar_t));

MultiByteToWideChar(CP_UTF8,0,recData,-1,(LPWSTR)pUnicode,unicodelen);

wprintf(pUnicode);

//        printf(recData);

}

closesocket(sclient);

WSACleanup();

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值