파일의 데이터 유형은 다양한 API 호출에 이진 데이터를 게시하는 데 사용됩니다. file 유형의 인수를 하나 이상 포함하는 모든 API 호출은 다음 요구 사항을 충족해야 합니다.
-
HTTP POST 메서드를 사용해야 합니다.
-
HTML 사양에 설명된 대로 multipart/form-data 요청을 구성해야 합니다.
예제
Java HttpClient
HttpClient httpclient = 새로운 DefaultHttpClient(); HttpPost httpPost = new HttpPost(webServerUrl); MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE, null, Charset.forName("UTF-8")); StringBody taskPart; StringBody 포맷 파트; StringBody saveToTransMemoryPart; StringBody setCompletedPart; ByteArrayBody fileContentPart; // ... 변수를 데이터로 채우기 ... // 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 ); // ... 버퍼를 데이터로 채우기 ... // writer.writeTo( buffer ); buffer->close(); QHttpPart 파일 부분; filePart.setHeader( QNetworkRequest::ContentTypeHeader, QVariant( "application/octet-stream" ) ); filePart.setHeader ( QNetworkRequest :: ContentDispositionHeader , QVariant ( QString ( "양식 데이터; 이름 = \ "이중 언어 파일 \"; 파일 이름 = \ "") + model->getFileInfos () )[0] .original + "\"")); buffer->open( QIODevice::ReadOnly ); filePart.setBodyDevice( buffer ); multiPartData->append( filePart );