Wie zu verwenden loopJ SyncHttpClient für synchrone Aufrufe?
Habe ich fest auf dieser seit zwei Tagen nun endlich beschlossen, hier zu posten.
Sehe ich loopj Bibliothek wird verwendet für Asynchrone Aufrufe und mit vielen Beispielen und Erklärungen.
Da ich aber nicht verwenden, asynchrone Aufrufe in IntentSerive in Android bin ich gezwungen, zu verwenden, SyncHttpClient, aber es scheint nicht zu funktionieren, da nur die onFailure callback wird aufgerufen, wenn ich SyncHttpClient.
Gibt es keine Beispiele für die Verwendung SyncHttpClient auch in der Dokumentation.
Dieses Problem wird auch diskutiert hier.
So kann nur jemand geben, der richtige Weg, es zu tun?
- Welche Lösung hast du benutzt?
SyncHttpClient
scheint nicht zu funktionieren wie es sollte. Welche Lösung/Ansatz hast du verwendet? - losgeworden loopj insgesamt und einfachen DefaultHttpClient das ist ein sync-Aufruf.
- Unglücklicherweise kann ich nicht tun, da ich eine Datei hochladen. Ich benutzte einen anderen Weg. Ich poste es als Antwort. Es funktioniert gut für mich und hoffentlich auch hilfreich für andere in der Zukunft.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie tun es die gleiche Weise wie async-http-client, geben Sie Ihre handler, implementiert ResponseHandlerInterface, aber jetzt ist die Anfrage ausgeführt werden, die im selben thread. Sie können ganz einfach überprüfen Sie es selbst durch die Einstellung der debugger zu der nächsten Anweisung nach der Synchronisation http-client aufrufen und sehen, dass der debugger dann trifft diese Aussage nach Ihrem onSuccess /onFailure callback ausgeführt. Im Fall der asynchronen debugger trifft dies noch vor Ihrer onStart-Methode, die es verursachen wird ausgeführt in einem separaten thread.
Beispiel:
Können Sie
SyncHttpClient
aber Sie müssen nicht die option zu stornieren. Ich machte eine Klasse, die verwendetAsyncHttpClient
auf Datei hochladen, aber es hat einen Vorteil gegenüber derSyncHttpClient
Klasse - es ermöglicht die Stornierung. Ich habe bereits geschrieben wird der code in anderen thread.Code aus dem gleichen thread:
Dies ist, wie Sie es laufen kann:
Abbrechen der upload, rufen Sie einfach
cancel()
wie: