Datový typ souboru se používá pro odesílání binárních dat do různých volání API. Každé volání API obsahující alespoň jeden argument typu soubor musí splňovat následující požadavky:
-
Musí být použita metoda HTTP POST.
-
Musí být vytvořen vícedílný/formulářový požadavek na data popsaný ve specifikacích HTML.
Příklady
Java HttpClient
HttpClient httpclient = nový výchozí HttpClient(); HttpPost httpPost = new HttpPost(webServerUrl); reqEntity pro MultipartEntity = nový MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE, null, Charset.forName("UTF-8")); StringBody taskPart; Formát StringBodyPart; StringBody uložitDoTransMemoryPart; StringBody setCompletedPart; ByteArrayBody fileContentPart; // ... vyplnit proměnné daty ... // 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 = nový QHttpMultiPart( QHttpMultiPart::FormDataType ); QBuffer* buffer = nový QBuffer( multiPartData ); buffer->open( QIODevice::WriteOnly ); // ... vyplnit vyrovnávací paměť daty ... // writer.writeTo( vyrovnávací paměť ); buffer->close(); filePart QHttpPart; 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( vyrovnávací paměť ); multiPartData->append( filePart );