出于某种原因,我需要使用阻止调用从谷歌的服务器执行图像访问。 但是,QNetworkAccessManager似乎是异步的,尽管有很多解决方法,比如调用eventLoop.exec();很多人在网上建议我不要这样做。Qt:使用tcp socket获取谷歌地图图片?
所以我想使用TCP Socekt。 我想在这里访问图像:
http://mt1.google.com/vt/lyrs=y&x=0&y=0&z=0
这里是我的代码:
socket = new QTcpSocket(this);
socket->connectToHost("mt1.google.com", 80, QIODevice::ReadWrite);
if(socket->waitForConnected(5000))
{
qDebug() << "Connected!";
// send
socket->write("/vt/lyrs=y&x=0&y=0&z=0");
socket->waitForBytesWritten(1000);
socket->waitForReadyRead(3000);
qDebug() << "Reading: " << socket->bytesAvailable();
// get the data
qDebug() << socket->readAll();
// close the connection
socket->close();
}
else
{
qDebug() << "Not connected!";
}
但似乎在所有的工作?我应该通过tcp套接字来获取图像?
Google服务器等待来自您的http请求。您需要实现http协议才能从tcp套接字获取映像。 – Milovidov