Qt
を学び、インターネットからXMLファイルをダウンロードしたい。 QUrl
は、値value1とvalue2に依存します。例:Qtがウェブからの動的XMLを要求する
http://www.example.org/path/the_xml_file.xml?value1=1&value2=2
私はその後、私はこの方法でQUrl
と位置することを要求QString
destination_XML_URL
void AClass::setUrlString(quint32 t_value1, quint32 t_value2) {
destination_XML_URL = QString("http://www.anyweb.com/path/the_xml_file.xml?value1=%1&value2=%2").arg(t_value1).arg(t_value2);
}
を設定:
QNetworkAccessManager url_network_access_manager;
//..;
setTarget(12, 34);
QUrl xml_Url(destination_XML_URL);
QNetworkRequest request(xml_Url);
QNetworkReply url_network_reply = url_network_access_manager.get(request);
最後に接続接続する:
その後connect(&url_network_access_manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(slot_disconnect2Net(QNetworkReply*)));
ウェブからxmlファイルを取得した後スロット、:
void AClass::slot_disconnect2Net(QNetworkReply *data) {
qint64 t_size1 = data->size();
int error_code = data->error();
switch(error_code) {
case 0:
transform_Raw_2_XML(data);
break;
case 3:
break;
case 301:
break;
default:
QMessageBox::critical(this, "AClass::disconnect2Net()", QString("Connection error %1:\n %2").arg(error_code).arg(data->errorString()), QMessageBox::Ok);
}
}
しかし、私は、error_code 3取得:
http://doc.qt.io/qt-4.8/qnetworkreply.html#NetworkError-enum
「QNetworkReply :: HostNotFoundError = 3 :リモートホスト名が ではない(ホスト名が無効) "
アイデア?
はい、proxy:// QNetworkProxyプロキシがあります。 //proxy.setType(QNetworkProxy::HttpProxy); //proxy.setHostName("web.name.net "); //proxy.setPort(8080); //proxy.setUser("username "); //proxy.setPassword("******* "); // QNetworkProxy :: setApplicationProxy(プロキシ); //url_network_access_manager.setProxy(proxy);これで私はQNetworkReply :: ProxyAuthenticationRequiredErrorを取得します要求を守るためにプロキシが認証を要求しますが、提供された資格情報を受け付けませんでした。 –
QNetworkReply :: errorString()は何を言いますか? – salomon
本文には「プロキシに認証が必要です」と表示されています –