Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Qué significa recibir un error al obtener datos meteorológicos en Qt5?

¿Qué significa recibir un error al obtener datos meteorológicos en Qt5?

Qt obtiene información meteorológica

Esta función utiliza principalmente las páginas web proporcionadas por China Weather Network y utiliza la clase de red de Qt para interceptar cadenas en las páginas web

Paso 1: crear dos Qt relacionados objeto de clase de red

QNetworkAccessManager *manager;

QNetworkReply *reply;

QString ciudad //Obtener la cadena de la ubicación

QString Weather; //Obtener la cadena meteorológica

Slot público:

void getWeather( QNetworkReply *replyweather); //Nuevo slot aquí, para usar en el paso 3

1

2

3

4

5

6

1

2

3

4

5

6

Paso 2: Obtenga las páginas web de varios lugares proporcionadas por China Weather Network

QString str("/data/101010100.html" // La cadena numérica que contiene representa el código de ciudad

1

1

Paso 3: Configure los dos objetos en el paso 1

manager = new QNetworkAccessManager(parent);

connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT( getWeather(QNetworkReply*))); // Al obtener la respuesta, asóciela al slot correspondiente

QString str(" / data/101010100.html");

manager-gt; get(QNetworkRequest(QUrl (str))); //solicita la respuesta de esta página

1

2

3

4

1

2

3

4

Paso 4: Interceptar cadena

void DreamWeather: .getWeather(QNetworkReply *replayweather)

{

QTextCodec * codec= QTextCodec::codecForName("utf8");

QString str=codec- gt; toUnicode(replayweather-gt; readAll() //leer todas las solicitudes obtenidas

/ / Aquí está la operación de interceptar cadenas de páginas web. Específicamente por qué y cómo hacerlo, puede ir y mirar esa página web y luego lo entenderá.

str.replace(QString("/ ""), QString(""));

lista meteorológica=str.split(', '

for(int i=0; ilt. lista meteorológica.count()); ;i )

{

QStrin

g st;

QStringList li;

st=weatherlist.at(i);

li=st.split(':');

if(li.first()=="city")

city=li.at(1); //obtiene la cadena local

if(li. if (li.first()=="weather1")

weather1=li.at(1 //obtiene la cadena meteorológica local

}

emit Finish(true);

}

//Obtén la información relevante que se guardará dentro de la cadena en el paso 1, esa página web proporciona mucha información, puedes interceptar muchas cosas