出於某種原因,我需要使用阻止調用從谷歌的服務器執行圖像訪問。 但是,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