Erstellen einer richtigen MultipartBuilder-HTTP-Anforderung mit OKHttp

Ich möchte mein Projekt neu codieren und okHttp anstelle des in Android implementierten Standard-HttpClient verwenden.

Ich habe die neueste Quelle der okhttp-Hauptversion heruntergeladen.

Jetzt habe ich einige Beispiele gefunden, wie man eine POST-Anfrage erstellt und erstellt.

Nun mein Problem. Ich möchte einen RequestBody erstellen, der mehrere Daten (Strings, Files, was auch immer) enthält, aber ich kann sie nicht direkt zuweisen.

Bedeutet, dass der RequestBuilder verschiedene Schleifen durchlaufen muss, in denen die Daten hinzugefügt werden.

OkHTTPs RequestBody scheint die im Beispiel aufgeführten Daten sofort zu benötigenhttps://github.com/square/okhttp/wiki/Recipes

Wenn ich etwas ausprobieren möchte wie

RequestBody requestBody = new MultipartBuilder().type(MultipartBuilder.FORM);

for (Object aMData : dataClass.getData().entrySet()) {
            Map.Entry mapEntry = (Map.Entry) aMData;
            String keyValue = (String) mapEntry.getKey();
            String value = (String) mapEntry.getValue();
            requestBody.addPart(keyValue, value);
}


for (DataPackage dataPackage : dataClass.getDataPackages()) {
            requestBody.addPart("upfile[]", dataPackage.getFile());
}

requestBody.build();

Es schlägt fehl, weil build () selbst den RequestBody erstellt. Vorher ist es nur ein MultipartBuilder (). Wenn ich versuche, den Typ auf RequestBody zu setzen, wird er nicht kompiliert / ausgeführt.

Wie können diese Daten nach dem Erstellen eines MultiPartBuilders und dem Hinzufügen von DATA und Strings ordnungsgemäß hinzugefügt werden?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage