El tipo de datos de un archivo se utiliza para publicar datos binarios en varias llamadas API. Cada llamada API que contenga al menos un argumento de tipo de archivo debe cumplir los siguientes requisitos:
-
Se debe utilizar el método HTTP POST.
-
Se debe formar una solicitud de datos de múltiples partes/formularios como se describe en las especificaciones HTML.
Ejemplos
Java HttpClient
HttpClient httpclient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(webServerUrl); Entidad múltiple reqEntity = new Entidad múltiple (HttpMode.BROWSER_COMPATIBLE, null, Charset.forName("UTF-8")); StringBody taskPart; Formato StringBodyParte; StringBody saveToTransMemoryPart; StringBody setCompletedPart; ByteArrayBody fileContentPart; // ... rellenar variables con datos ... // reqEntity.addPart("task", taskPart); reqEntity.addPart("format", formatPart); reqEntity.addPart("saveToTransMemory", saveToTransMemoryPart); reqEntity.addPart("setCompleted", setCompletedPart); reqEntity.addPart("bilingualFile", fileContentPart); httpPost.setEntity(reqEntity);
C++ Qt
QHttpMultiPart* multiPartData = new QHttpMultiPart( QHttpMultiPart::FormDataType ); QBuffer* buffer = new QBuffer( multiPartData ); buffer->open( QIODevice::WriteOnly ); // ... llenar buffer con datos ... // writer.writeTo( buffer ); buffer->close(); QHttpPart filePart; filePart.setHeader( QNetworkRequest::ContentTypeHeader, QVariant( "application/octet-stream" ) ); filePart.setHeader( QNetworkRequest::ContentDispositionHeader, QVariant( QString( "form-data; name=\"bilingualFile\"; filename=\"" ) + model->getFileInfos()[0].original + "\"" ) ); buffer->open( QIODevice::ReadOnly ); filePart.setBodyDevice( buffer ); multiPartData->append( filePart );