請問c++如何取得http資料 |
答題得分者是:GrandRURU
|
frog1
一般會員 發表:25 回覆:40 積分:18 註冊:2007-01-24 發送簡訊給我 |
Hi,各位前輩
請問我在IE鍵入 http://192.168.1.13/get?model 會回覆 model = 2000 這段Web的方式用C 要如何寫, 我找了一天的資料, 但可能方向不對一直找不到答案, 請各前輩指點 謝 青蛙 |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
可以試著用Indy的IdHTTP元件來取得
可以參考:What's the simplest way to call Http GET url using Delphi? ===================引 用 frog1 文 章=================== Hi,各位前輩 請問我在IE鍵入 http://192.168.1.13/get?model 會回覆 model = 2000 這段Web的方式用C 要如何寫, 我找了一天的資料, 但可能方向不對一直找不到答案, 請各前輩指點 謝 青蛙 |
frog1
一般會員 發表:25 回覆:40 積分:18 註冊:2007-01-24 發送簡訊給我 |
Hi, 感謝GrandRURU的指點, 後來有找到解決方式, 程式碼如下, 提供需用者
[code cpp] #include #include #include #include #include #define MAX_BUFFER_LENGTH 2048 using namespace std; int main(int argc, char *argv[]) { char *valReg="getreg?page=5®=186"; char *chrIP = "192.168.1.13"; SOCKET sockfd; int len; struct sockaddr_in address; int result; char *ch = "GET /getreg?model HTTP/1.0\r\n" "Host: 192.168.1.13\r\n" "\r\n"; WSADATA wsadata; if(WSAStartup(0x101,(LPWSADATA)&wsadata) != 0) { cout << "Winsock Error" << endl; exit(1); } sockfd = socket(AF_INET, SOCK_STREAM, 0); int on = 1; setsockopt(sockfd,IPPROTO_TCP,TCP_NODELAY,(char*)&on,sizeof(on)); address.sin_family = AF_INET; address.sin_addr.s_addr = inet_addr(chrIP); address.sin_port = htons(80); len = sizeof(address); result = connect(sockfd, (struct sockaddr *)&address, len); if(result == -1) { cout << "Connetc Error" << endl; exit(1); } send(sockfd, ch, strlen(ch), 0); Sleep(50); char buf[MAX_BUFFER_LENGTH] = {0}; recv(sockfd, buf, MAX_BUFFER_LENGTH, 0); cout << "char from server =" << buf << endl; closesocket(sockfd); system("PAUSE"); return EXIT_SUCCESS; } [/code] 編譯時需Link -lwsock32 -lws2_32 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |