rendered paste body#define CONNECTION_REFUSED_TIME 20000
QImage getImage(QString qstrLogin,QString qstrDomain,bool flgBig)
{
QString qstrDelimeter="/",qstrBig ="_mrimavatar",
qstrSmall="_mrimavatarsmall",qstrHost="obraz.foto.mail.ru",
qstrRequest;
QImage qiResult;
if(flgBig)
qstrRequest=qstrDelimeter+qstrDomain+qstrDelimeter+qstrLogin+qstrDelimeter+qstrBig;
else
qstrRequest=qstrDelimeter+qstrDomain+qstrDelimeter+qstrLogin+qstrDelimeter+qstrSmall;
QTcpSocket Socket;
QString qstrAvailableBytes;
Socket.connectToHost(qstrHost,80,QIODevice::ReadWrite);
if(!Socket.waitForConnected(CONNECTION_REFUSED_TIME))
return qiResult;
char buf[200];
strcpy(buf,QString("GET %1 HTTP/1.1\r\nHost: %2\r\n\r\n").arg(qstrRequest).arg(qstrHost).toAscii().constData());
Socket.write(buf,strlen(buf));
Socket.waitForBytesWritten();
if(!Socket.waitForDisconnected(CONNECTION_REFUSED_TIME))
return qiResult;
QRegExp regexp("(Content-Length: )([0-9]+)");
int Num=0;
bool flgOk;
QByteArray qbaBlock;
qbaBlock=Socket.read(Socket.bytesAvailable());
qstrAvailableBytes=qbaBlock;
if(regexp.indexIn(qbaBlock)>-1)
{
Num=regexp.cap(2).toInt(&flgOk);
if(!flgOk)
return qiResult;
qbaBlock=qbaBlock.right(Num);
qiResult=QImage::fromData(qbaBlock);
}
return qiResult;
}