La réponse à un type de requête HTTP que j'envoie est une photo multipart / formulaire ressemble à quelque chose comme: J'utilise Apache pour envoyer et recevoir les demandes HTTP, mais Je n'arrive pas à trouver un moyen facile de l'utiliser pour analyser ce qui précède pour un accès facile aux champs de formulaire. P> Je préférerais ne pas réinventer la roue, alors je cherche une bibliothèque qui me permet de faire quelque chose de similaire à: p> toute suggestion? p> p>
3 Réponses :
exemple de code à l'aide de constructeur obsolète:
Bon code Cependant, vous n'imprimez que des en-têtes et du corps en tant que chaîne, il demande quelque chose comme Multipart.get ("bin");
exemple de code sans utiliser de méthodes obsolètes.
import com.google.common.net.MediaType; import org.apache.commons.fileupload.RequestContext; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; public class SimpleRequestContext implements RequestContext { private final Charset charset; private final MediaType contentType; private final byte[] content; public SimpleRequestContext(Charset charset, MediaType contentType, byte[] content) { this.charset = charset; this.contentType = contentType; this.content = content; } public String getCharacterEncoding() { return charset.displayName(); } public String getContentType() { return contentType.toString(); } @Deprecated public int getContentLength() { return content.length; } public InputStream getInputStream() throws IOException { return new ByteArrayInputStream(content); } } { ... Charset encoding = UTF_8; RequestContext requestContext = new SimpleRequestContext(encoding, contentType, body.getBytes()); FileUploadBase fileUploadBase = new PortletFileUpload(); FileItemFactory fileItemFactory = new DiskFileItemFactory(); fileUploadBase.setFileItemFactory(fileItemFactory); fileUploadBase.setHeaderEncoding(encoding.displayName()); List<FileItem> fileItems = fileUploadBase.parseRequest(requestContext); ... }
Je voulais une solution qui a fonctionné à partir d'Azure Fonctions avec tout ce qui étant en mémoire et pas de dépendance sur les API de servlet ou de portail. Alors j'ai écrit un: et un échantillon d'utilisation avec des fonctions Azure: p>
J'utilise cela pour mon application de fonctions Azure. Fonctionne très bien! Merci!!
Wow. J'utilise AWS Lambda et cet exemple fonctionne parfaitement hors de la boîte. Merci d'avoir pris le temps de le partager !!!