VC++ Socket 如何获取 返回的http 的头信息 谁有这方面的资料啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Socket的话得自己解析了。wininet可以用QueryOption 好象没有对应的api,http也是建立在socket基础之上,解析呗,给你个代码参考下,这个小例子是获取网页的内容,同样也能获得http头WSADATA wsa; WSAStartup(MAKEWORD(2,2),&wsa); /*远程主机信息*/ struct sockaddr_in sin; sin.sin_family = AF_INET; sin.sin_port = htons(80); sin.sin_addr.S_un.S_addr =inet_addr("127.0.0.1"); /*创建TCP socket*/ SOCKET sClient = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); /*连接到服务器*/ connect(sClient,(sockaddr*)&sin,sizeof(sin)); /*发送HTTP消息头*/ char request[]= "GET /ip.jpg HTTP/1.0\r\n" "host:127.0.0.1\r\n" "accept:*/*\r\n\r\n"; send(sClient,request,strlen(request),0); /*处理回应头*/ char rec[256]; while(recvline(sClient,rec)) { if( strlen(rec)<=0 ) break; } /*获取文件内容*/ char* data = new char[256]; memset(data,0,256); ::recv(sClient,data,256,0); closesocket(sClient); WSACleanup(); /*打印数据*/ printf("%s\r\n",data); 我主要是应用以下3个类去完成我的一些网络操作的但是 我不知道该如何获取 header 信息CInternetSession session; CHttpConnection *pHttpConnection = NULL; CHttpFile *pHttpFile = NULL; CString strText(_T(""));CHttpFile::QueryInfo(HTTP_QUERY_RAW_HEADERS_CRLF, strText);... socket recv 本来就是直接接受HTTP返回的。当你连接到WEB服务器 通过RECV 就可以获取他的所有信息。接受到的信息,包括HTTP 头,你要自己分解下!3楼的代码就很好了 此方法 可行。解析 strText 以 \R\N 去分析 vc++ 调用 wmi的方法,参数问题 拼图游戏局域网的碰到的两个问题 如何将一个文本嵌入到程序中 急啊,请教老师 关于CreateFile能否用参数能否实现“当文件存在则打开,不存在则创建的”的问题 请问如何防止一个非模态Dlg重复打开? 我在自己的程序中引入了共享内存,部分程序如下,在调试到(*)所注的那步时系统报错,这是为什么?谢谢大侠了!!! 视图间通信的问题 请教一个error C2059: syntax error问题 CIF格式 我在使用ADO访问Excel时遇到的问题 Layer.obj : error LNK2019: 无法解析的外部符号???
wininet可以用QueryOption
WSADATA wsa;
WSAStartup(MAKEWORD(2,2),&wsa);
/*远程主机信息*/
struct sockaddr_in sin;
sin.sin_family = AF_INET;
sin.sin_port = htons(80);
sin.sin_addr.S_un.S_addr =inet_addr("127.0.0.1");
/*创建TCP socket*/
SOCKET sClient = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
/*连接到服务器*/
connect(sClient,(sockaddr*)&sin,sizeof(sin));
/*发送HTTP消息头*/
char request[]=
"GET /ip.jpg HTTP/1.0\r\n"
"host:127.0.0.1\r\n"
"accept:*/*\r\n\r\n";
send(sClient,request,strlen(request),0);
/*处理回应头*/
char rec[256];
while(recvline(sClient,rec))
{
if( strlen(rec)<=0 )
break;
}
/*获取文件内容*/
char* data = new char[256];
memset(data,0,256);
::recv(sClient,data,256,0);
closesocket(sClient);
WSACleanup();
/*打印数据*/
printf("%s\r\n",data);
CInternetSession session; CHttpConnection *pHttpConnection = NULL;
CHttpFile *pHttpFile = NULL;
CHttpFile::QueryInfo(HTTP_QUERY_RAW_HEADERS_CRLF, strText);
...
3楼的代码就很好了
此方法 可行。解析 strText 以 \R\N 去分析