QHttp mit SOCKS5 Proxy
QHttp mit SOCKS5 Proxy
Hallo,
ich versuche gerade eine Verbindung über http und einem Proxy zu schaffen.
Allerdings wenn ich die funktion
QHttp::setProxy nehme bekomme ich immer einen Authentication Error.
Also entweder ist mein PW oder Username falsch (kann nicht sein)
oder der Proxy ist ein Socks5 Proxy der ja von QHttp nicht unterstützt wird.
Hat jemand eine Idee wie ich das ganze trotzdem zum laufen kriege?
Anscheinend muss man dann einen eigenen TCPSocket erstellen und mit QHttp::setSocket(...) zuordnen aber irgendwie will das nicht so wirklich.
mfg benjamin
ich versuche gerade eine Verbindung über http und einem Proxy zu schaffen.
Allerdings wenn ich die funktion
QHttp::setProxy nehme bekomme ich immer einen Authentication Error.
Also entweder ist mein PW oder Username falsch (kann nicht sein)
oder der Proxy ist ein Socks5 Proxy der ja von QHttp nicht unterstützt wird.
Hat jemand eine Idee wie ich das ganze trotzdem zum laufen kriege?
Anscheinend muss man dann einen eigenen TCPSocket erstellen und mit QHttp::setSocket(...) zuordnen aber irgendwie will das nicht so wirklich.
mfg benjamin
Also erstmal vorweg, SOCKS5 Proxies werden von Qt (4) unterstützt -> QNetworkProxy.
Hmm, habe gerade QHttp im Assistant offen. Dort kann man nur Username, Passwort, Adresse und Port angeben, aber nicht den Typ. Ich würde mal versuchen ein QNetworkProxy zu erstellen und dann als Application default zu setzen (QNetworkProxy::setApplicationProxy( const QNetworkProxy & networkProxy )).
SG Alexander
Hmm, habe gerade QHttp im Assistant offen. Dort kann man nur Username, Passwort, Adresse und Port angeben, aber nicht den Typ. Ich würde mal versuchen ein QNetworkProxy zu erstellen und dann als Application default zu setzen (QNetworkProxy::setApplicationProxy( const QNetworkProxy & networkProxy )).
SG Alexander
genau das hab ich schon versucht.
Aber leider ohne Erfolg. Ich bekomme leider auch keine Fehlermeldung oder sonstiges nud weiss leider auch nicht warum es nicht läuft.
Ich merke es immer nur daran das das programm die Files nicht uploaded.
Wenn ich den ProxyMode von QHttp nutze dann bekomme ich als Fehler das ich mich am Webservice anmelden muss. Allerdings habe ich Username und Passwort angegeben.
Wenn ich das ganze über QNetworkProxy mache bekomme ich überhaupt keine responce (so verhält es sich auch wenn ich keinen Proxy angebe) also ein timout.
ICh habe versucht das ganze über einen neuen QTcpSocket zu machen und diesen über QHttp::setSocket zuzuweisen aber damit habe ich keine Erfahrung auch hier timeout.....
mfg benjamin
Aber leider ohne Erfolg. Ich bekomme leider auch keine Fehlermeldung oder sonstiges nud weiss leider auch nicht warum es nicht läuft.
Ich merke es immer nur daran das das programm die Files nicht uploaded.
Wenn ich den ProxyMode von QHttp nutze dann bekomme ich als Fehler das ich mich am Webservice anmelden muss. Allerdings habe ich Username und Passwort angegeben.
Wenn ich das ganze über QNetworkProxy mache bekomme ich überhaupt keine responce (so verhält es sich auch wenn ich keinen Proxy angebe) also ein timout.
ICh habe versucht das ganze über einen neuen QTcpSocket zu machen und diesen über QHttp::setSocket zuzuweisen aber damit habe ich keine Erfahrung auch hier timeout.....
mfg benjamin
hab ich auch schon versucht
allerdings benötigt dieser Proxy username und pw....
ich glaube das ich noch irgendwas beachten muss wenn ich QHttp einen neuen QTcpSocket zuweise........
Was ich im Moment mache ist einen neuen Socket erstellen
dem Socket den Socks5 Proxy zuweisen
und den Socket an QHttp weiterreichen.
Jetzt mach ich ganz normal weiter.......
allerdings benötigt dieser Proxy username und pw....
ich glaube das ich noch irgendwas beachten muss wenn ich QHttp einen neuen QTcpSocket zuweise........
Was ich im Moment mache ist einen neuen Socket erstellen
dem Socket den Socks5 Proxy zuweisen
und den Socket an QHttp weiterreichen.
Jetzt mach ich ganz normal weiter.......
Code: Alles auswählen
proxy = QNetworkProxy(QNetworkProxy::Socks5Proxy,strHost,iPort,strUser,strPw);
#ifdef USE_SPEC_SOCKET_PROXY
//---- use specific socket for proxy
sock = new QTcpSocket();
sock->setProxy(proxy);
http.setSocket(sock);
#else
//---- use application proxy
proxy.setApplicationProxy(proxy);
#endif
http.setURI(............);
...........
ich hab glaub das gleiche problem, wenn ich zu servern im internet connecte.
state 1 ist QAbstractSocket::HostLookupState
state 2 ist QAbstractSocket::UnconnectedState
also das connecten funktioniert nicht.
gab es da inzwischen ein lösung?
bzw. hat da jemand ne idee ?
Code: Alles auswählen
mpQTcpSocket = new QTcpSocket(this);
mpQNetworkProxy = new QNetworkProxy(QNetworkProxy::DefaultProxy, host, port);
mpQTcpSocket->setProxy(*mpQNetworkProxy);
mpQTcpSocket->connectToHost( host, port);
int state1 = mpQTcpSocket->state();
mpQTcpSocket->waitForConnected(2000); //2sekunden timeout
int state2 = mpQTcpSocket->state();
state 2 ist QAbstractSocket::UnconnectedState
also das connecten funktioniert nicht.
gab es da inzwischen ein lösung?
bzw. hat da jemand ne idee ?