Multipart/Form Data & HttpWebRequest mit Payload

  • Java

    Multipart/Form Data & HttpWebRequest mit Payload

    Hallo.

    Und zwar sende ich in Java per Jsoup Httpwebrequests, die soweit auch funktionieren.

    Leider bin ich jetzt an dem Punkt angelangt, an dem ich auch Multipart/FormData senden muss
    und andererseits auch HttpWebRequests mit Payloads (XML).

    Da Jsoup dies nicht unterstützt, habe ich jetzt zur Bibliothek Jersey gegriffen.

    Leider finde ich da nur wenige Beispielcodes und wenn, dann sind die ziemlich veraltet.
    Generell besteht das Problem, dass ich nicht genau weiss, welche Klassen ich benutzen sollte.


    Derzeit habe ich mir folgenden Code "zusammengestrickt":



    Quellcode

    1. package Test;
    2. import javax.ws.rs.client.ClientBuilder;
    3. import javax.ws.rs.client.Entity;
    4. import javax.ws.rs.client.WebTarget;
    5. import javax.ws.rs.core.Configuration;
    6. import javax.ws.rs.core.MediaType;
    7. import javax.ws.rs.core.Response;
    8. import com.sun.jersey.api.client.WebResource;
    9. public class RequestGenerator {
    10. private WebTarget target;
    11. private Configuration config;
    12. private javax.ws.rs.client.Client client;
    13. private Response response;
    14. public RequestGenerator(String RequestSendingMethod) throws Exception {
    15. switch (RequestSendingMethod) {
    16. case "POST":
    17. String payload =
    18. "\r\n{\r\n\"query\": \"google \",\r\n\"rows\": 50,\r\n\"return_docs\": true,\r\n\"is_facet\": true\r\n}"; // this is
    19. // escapped
    20. // json
    21. System.out.print( payload ); // string in
    22. // single
    23. // line
    24. client = ClientBuilder.newClient();
    25. target = client.target( "https://www.google.de/" );
    26. response = target.request().accept( MediaType.APPLICATION_JSON )
    27. .post( Entity.entity( payload, MediaType.APPLICATION_JSON ), Response.class );
    28. // processresponse(response); //This could be any method which processes your json response and gets you your desired
    29. // data.
    30. break;
    31. case "GET":
    32. client = ClientBuilder.newClient();
    33. target = client.target( "https://www.google.de/" ).path( "search" ).path( "results" )
    34. .path( "tiger" );
    35. response = target.request().accept( MediaType.APPLICATION_JSON ).get();
    36. // processresponse(response); //This could be any method which processes your json response and gets you your desired
    37. // data.
    38. break;
    39. }
    40. }
    41. public static void main(String[] args) {
    42. // TODO Auto-generated method stub
    43. }
    44. }


    Kann mir da jemand ein paar Tipps zu den Klassen geben, die ich benutzen sollte?
    Konkrete Fragen wären auch:
    -Wie bekomme ich die Cookies aus Jsoup bei den Requests mit Jersey eingebunden ?

    Ich danke im Voraus.