Zdravim,
mam problém s programem, jehož úkolem je získat informace o objektu z WWW serveru. Zkoušel jsem různé servery a všude program funguje kromě www.fit.vutbr.cz. Program se při použití metody HEAD vždycky zůstane viset ve funkci read.
int GetData(tURL URL, int sock, string &header){
string request("");
char buf[BUFSIZE];
unsigned int size;
int temp;
request.append("HEAD " + URL.path + " HTTP/1.1\r\n"); // Vytvoření požadavku
request.append("Host: " + URL.server + "\r\n");
request.append("User-Agent: WebClient - IPK projekt 1\r\n");
request.append("Connection: close\r\n\r\n");
cout << request << endl;
size = write(sock, request.c_str(), request.length() + 1); // Odešle požadavek
if (size != (request.length() + 1)){ // Otestuje se, že byla odeslána celá zpráva
PrintError(ERR_WRITE);
return 1;
}
header = ""; // Přijmou se data
while ((size = read(sock, buf, sizeof(buf))) > 0){ // !!! Tady zůstane vyset
buf[size] = '\0';
header += buf;
};
header.erase(header.rfind("\r\n"), 2); // Odstraní se prázdný řádek
return 0;
}