【发布时间】:2015-10-03 16:32:46
【问题描述】:
我正在编写一个程序,该程序在 C++ 中创建一个指向 url 的 WebRequest。这是我的代码:
void CreateRequest()
{
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {
return;
}
SOCKET Socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
struct hostent *host;
host = gethostbyname("www.website.net");
SOCKADDR_IN SockAddr;
SockAddr.sin_port = htons(80);
SockAddr.sin_family = AF_INET;
SockAddr.sin_addr.s_addr = *((unsigned long*)host->h_addr);
if (connect(Socket, (SOCKADDR*)(&SockAddr), sizeof(SockAddr)) != 0){
return;
}
const char link[] = "www.website.net";
char Link[100] = "";
strcat(Link, "GET /File.php?Test=");
strcat(Link, "test");
strcat(Link, " HTTP/1.1\r\nHost: www.website.net \r\nConnection: close\r\n\r\n");
send(Socket, Link, strlen(Link), 0);
char buffer[10000];
int nDataLength;
while ((nDataLength = recv(Socket, buffer, 10000, 0)) > 0){
int i = 0;
while (buffer[i] >= 32 || buffer[i] == '\n' || buffer[i] == '\r') {
cout << buffer[i];
i += 1;
}
}
closesocket(Socket);
WSACleanup();
}
这是结果:
我想要做的只是得到“拒绝访问”,这样我就可以从我的代码中检查请求状态。
【问题讨论】:
标签: c++ sockets http response webrequest