Ich benutze Jsoup, um ein Formular an eine Website zu posten, die Antwort ist Klartext, aber der Inhaltstyp ist Jsoup nicht bekannt. Daher verwende ich ignoreContentType (true), daher wird Jsoup aufgrund des unbekannten Inhaltstyps keine Ausnahme auslösen. Allerdings kann ich nicht herausfinden, wie man die rohe Antwort von Jsoup bekommt, der Text enthält einige Sonderzeichen, die Jsoup entkleidet, auch Jsoups fügt ein Body- und HTML-Tag hinzu - ich brauche das nicht, ich will nur die rohe Antwort. Wie bekomme ich die rohe Antwort? Vielen Dank!Erhalten Sie rohe Antwort von Jsoup
7
A
Antwort
5
Sie könnten hierfür Response#body()
verwenden. Z.B.
String body = Jsoup.connect(url).execute().body();
Oder wenn Sie POST tun sind
String body = Jsoup.connect(url).method(Method.POST).data(data).execute().body();
0
Sie können die Response
Objekt aus Connection
zu bekommen, und es enthält die Roh-Byte-Daten. Ignoriere den Inhaltstyp oder es schlägt bei Nicht-Text-Daten fehl. Wenn Sie body()
verwenden, kann die Antwort mit dem Standardzeichensatz fehlerhaft sein.
Connection conn = Jsoup.connect(url).ignoreContentType(true).method(Method.GET);
Connection.Response response = conn.execute();
byte[] raw = response.bodyAsBytes();
// if you want...
Document parsed = response.parse();
1
Ich hatte dasselbe Problem und lösen es in zwei Schritten
1- Versammlung Antwort
2- Lese Antwort als Bytes und bespannen Umwandlung oder Parsen an, was Sie wollen (json, etc)
Response resp = jsoup.connect(url).ignoreContentType(true).Method(Method.Post).execute();
String respStr = new String(resp.bodyAsBytes(), StandardCharsets.UTF_8);
Verwandte Themen
- 1. Erhalten Sie rohe Post-Daten
- 2. Wie erhalten Sie rohe TimeTicks mit SharpSnmp?
- 3. So erhalten Sie die unformatierte Antwort und URL von HttpResponseDecorator
- 4. Erhalten Sie Text ohne Tags von der Webseite mit Jsoup
- 5. So erhalten Sie eine mobile Antwort der Webseite mit Java oder Jsoup
- 6. Erhalten Sie bestimmte Teile von XML Antwort?
- 7. Wie rohe Anfrage und Antwort Inhalt von TIdHttp
- 8. Antwort von SendMessage erhalten() + WM_COPYDATA
- 9. Wie erhalten Sie rohe TCP-Paket in C#?
- 10. Antwort von Facebook erhalten Login
- 11. Antwort von http erhalten Android
- 12. Wert von JSON-Antwort erhalten
- 13. Erhalten rohe Bytes eines Schwimmers in Swift
- 14. Erhalten Sie Text aus span mit Jsoup (Java)
- 15. Erhalten Sie SMTP-Antwort-Code mit Nylas
- 16. Jsoup erhalten Inhalt von Javascript, das CDATA-Tags hat?
- 17. So erhalten Sie vollständige Antwort für Groovy RestClient fehlgeschlagen Antwort
- 18. So fangen Sie rohe Seife Anfrage/Antwort (Daten) von WCF Client
- 19. Element ohne Attribute mit Jsoup erhalten
- 20. Verwalten von zip von http erhalten Antwort
- 21. Wie analysiert man eine rohe HTTP-Antwort als HttpListenerResponse?
- 22. Übergeben Sie Parameter von $ erhalten Versprechen Antwort auf $ Bereich
- 23. Wie erhalten Sie STRING Antwort von RestTemplate postForLocation?
- 24. So erhalten Sie Antwort Header-Speicherort von jQuery Get?
- 25. Erhalten Sie immer noch ungültige Antwort von PayPal
- 26. Letzte Antwort erhalten
- 27. Erhalten Antwort Header von Ruby HTTP-Anfrage
- 28. Antwort von HTTP-Anfrage ohne Inhaltslänge erhalten?
- 29. Antwort von TIdHttp mit Fehlercode erhalten 400
- 30. erhalten $ .ajax Antwort
Danke, das würde den Job machen, aber ich frage mich, ob es wirklich nicht möglich ist, die Rohdaten von Jsoup zu bekommen. Ich bin mir bewusst, dass es ein Parser ist, aber vielleicht gibt es noch eine Methode dafür? ;-) –
Ich habe die Antwort geändert. – BalusC
Danke, aber das sind immer noch nicht die Rohdaten, abgesehen von den hinzugefügten body-Tags (nicht das eigentliche Problem) fehlen einige Sonderzeichen von jsoup: –