authenticationRequired nur jedes zweite Mal
Verfasst: 14. Dezember 2012 16:26
Hallo,
ich rufe mehrere Webservices nacheinander auf und habe dafür eine Klasse mit einem QtSoapHttpTransport.
Das Signal vom Transport verbinde ich im Konstruktor:
Beim Aufruf verbinde ich dann die Signale des QAuthenticators:
Die Webservices verlangen jeweils nach BasicAuth.
Beim ersten Aufruf wird authenticationRequired signalisiert, ich zeige einen Dialog an und drücke dort cancel.
Danach wird der zweite Service aufgerufen, jetzt wird aber nicht authenticationRequired signalisiert sondern responseReady.
Die Response ist fehlerhaft (isFault true) und es gibt einen Netzwerkfehler:
Ausgabe ist:
Warning: 16:22:09.765 "Query failed: Network transport error (204): Host requires authentication"
Danach wird dann der nächste Service aufgerufen. Bei diesem wird wieder authenticationRequired signalisiert.
Rätselhaft, oder?
ich rufe mehrere Webservices nacheinander auf und habe dafür eine Klasse mit einem QtSoapHttpTransport.
Das Signal vom Transport verbinde ich im Konstruktor:
Code: Alles auswählen
connect(&m_soap, SIGNAL(responseReady()), SLOT(onServiceResponse()));Code: Alles auswählen
QNetworkAccessManager* acc = m_soap.networkAccessManager();
connect(acc, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), this, SLOT(authReq(QNetworkReply*,QAuthenticator*)));
connect(acc, SIGNAL(finished(QNetworkReply*)), this, SLOT(onFinished(QNetworkReply*)));Beim ersten Aufruf wird authenticationRequired signalisiert, ich zeige einen Dialog an und drücke dort cancel.
Danach wird der zweite Service aufgerufen, jetzt wird aber nicht authenticationRequired signalisiert sondern responseReady.
Die Response ist fehlerhaft (isFault true) und es gibt einen Netzwerkfehler:
Code: Alles auswählen
const QtSoapMessage& resp = m_soap.getResponse();
if (resp.isFault()) {
m_error = "Query failed: " + resp.faultString().value().toString();
QNetworkReply* reply = m_soap.networkReply();
int errorCode = reply->error();
qWarning() << m_error;
emit error(m_error)
Warning: 16:22:09.765 "Query failed: Network transport error (204): Host requires authentication"
Danach wird dann der nächste Service aufgerufen. Bei diesem wird wieder authenticationRequired signalisiert.
Rätselhaft, oder?