QHttpPart Class
QHttpPart 클래스는 HTTP 멀티파트 MIME 메시지 내에서 사용될 본문 부분을 보관합니다. 더 보기...
| 헤더: | #include <QHttpPart> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
- 상속된 멤버를 포함한 모든 멤버 목록
- QHttpPart는 네트워크 프로그래밍 API 및 암시적 공유 클래스의 일부입니다.
공개 함수
| QHttpPart() | |
| QHttpPart(const QHttpPart &other) | |
| ~QHttpPart() | |
| void | setBody(const QByteArray &body) |
| void | setBodyDevice(QIODevice *device) |
| void | setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value) |
| void | setRawHeader(const QByteArray &headerName, const QByteArray &headerValue) |
| void | swap(QHttpPart &other) |
| bool | operator!=(const QHttpPart &other) const |
| QHttpPart & | operator=(const QHttpPart &other) |
| bool | operator==(const QHttpPart &other) const |
관련 비멤버
(since 6.8) QDebug | operator<<(QDebug debug, const QHttpPart &part) |
상세 설명
QHttpPart 클래스는 HTTP 멀티파트 MIME 메시지( QHttpMultiPart 클래스로 표현됨) 내에서 사용될 본문 부분을 보관합니다. QHttpPart는 헤더 블록과 데이터 블록으로 구성되며, 이 두 블록은 연속된 두 줄의 줄바꿈으로 구분됩니다. 한 부분의 예는 다음과 같습니다.
Content-Type: text/plain
Content-Disposition: form-data; name="text"
here goes the body헤더를 설정하려면 setHeader() 및 setRawHeader()을 사용하십시오. 이 함수들은 QNetworkRequest::setHeader() 및 QNetworkRequest::setRawHeader()과 정확히 동일한 방식으로 동작합니다.
작은 데이터 조각을 읽을 때는 setBody()을 사용하고, 이미지 같은 더 큰 데이터 블록의 경우 setBodyDevice()을 사용합니다. 후자의 메서드는 데이터를 내부적으로 복사하지 않고 장치에서 직접 읽음으로써 메모리를 절약합니다. 즉, 본문 부분이 포함된 멀티파트 메시지가 QNetworkAccessManager::post()를 통해 네트워크로 전송되는 시점에 해당 장치가 열려 있고 읽기 가능한 상태여야 합니다.
작은 본문을 가진 QHttpPart를 생성하려면 다음 코드 조각을 참고하십시오(이 코드는 위 예제에 표시된 데이터를 생성합니다):
QHttpPart textPart;
textPart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("text/plain"));
textPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"text\""));
textPart.setBody("here goes the body");장치(예: 파일)에서 데이터를 읽어오는 QHttpPart를 생성하려면 다음을 적용할 수 있습니다:
QHttpPart imagePart;
imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg"));
imagePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"image\""));
imagePart.setRawHeader("Content-ID", "my@content.id"); // add any headers you like via setRawHeader()
QFile *file = new QFile("image.jpg");
file->open(QIODevice::ReadOnly);
imagePart.setBodyDevice(file);QHttpPart는 설정될 때 장치의 소유권을 인수하지 않으므로, 더 이상 필요하지 않을 때 이를 파기하는 것은 개발자의 책임입니다. QHttpMultiPart 문서에 설명된 대로, 멀티파트 메시지를 장치의 부모 객체로 설정하는 것이 좋습니다.
QHttpMultiPart 및 QNetworkAccessManager도 참조하십시오 .
멤버 함수 문서
QHttpPart::QHttpPart()
빈 QHttpPart 객체를 생성합니다.
QHttpPart::QHttpPart(const QHttpPart &other)
other 의 복사본을 생성합니다.
[noexcept] QHttpPart::~QHttpPart()
QHttpPart 를 삭제합니다.
void QHttpPart::setBody(const QByteArray &body)
이 MIME 파트의 본문을 body 로 설정합니다. setBodyDevice()를 통해 장치가 설정되지 않은 한, 이 메서드로 설정된 본문이 사용됩니다. 대용량 데이터(예: 이미지)의 경우, 내부적으로 데이터를 복사하지 않는 setBodyDevice()를 사용하십시오.
setBodyDevice()도 참조하십시오 .
void QHttpPart::setBodyDevice(QIODevice *device)
이 메서드는 장치를 device 에서 콘텐츠를 읽도록 설정합니다. 데이터 양이 많은 경우, 이 메서드를 사용하는 것이 setBody()보다 바람직합니다. 이 메서드를 사용할 때는 콘텐츠가 복사되지 않고 장치에서 직접 읽히기 때문입니다. device 는 열려 있고 읽기 권한이 있어야 합니다. QHttpPart 는 device 에 대한 소유권을 가져가지 않으므로, 필요한 경우 장치를 닫고 파기해야 합니다. device 가 순차적(예: 소켓, 단 파일은 제외)인 경우, device 가 finished()를 반환한 후에 QNetworkAccessManager::post()를 호출해야 합니다. 장치를 해제하고 setBody()를 통해 설정된 데이터를 사용하려면 "setBodyDevice(0)"을 사용하십시오.
setBody() 및 QNetworkAccessManager::post()도 참조하십시오 .
void QHttpPart::setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value)
알려진 헤더 header 의 값을 value 로 설정하며, 이전에 설정된 헤더는 모두 덮어씁니다.
QNetworkRequest::KnownHeaders, setRawHeader() 및 QNetworkRequest::setHeader()도 참조하십시오 .
void QHttpPart::setRawHeader(const QByteArray &headerName, const QByteArray &headerValue)
headerName 헤더의 값을 headerValue 로 설정합니다. headerName 가 알려진 헤더( QNetworkRequest::KnownHeaders 참조)에 해당할 경우, 원시 형식이 파싱되어 해당 “가공된” 헤더도 함께 설정됩니다.
참고: 동일한 헤더를 두 번설정하면 이전 설정이 덮어쓰입니다. 동일한 이름의 여러 HTTP 헤더 동작을 구현하려면 두 값을 쉼표(",")로 구분하여 연결한 후, 하나의 원시 헤더로 설정해야 합니다.
QNetworkRequest::KnownHeaders, setHeader() 및 QNetworkRequest::setRawHeader()도 참조하십시오 .
[noexcept] void QHttpPart::swap(QHttpPart &other)
이 HTTP 부분을 other 로 교체합니다. 이 작업은 매우 빠르며 절대 실패하지 않습니다.
bool QHttpPart::operator!=(const QHttpPart &other) const
이 객체가 other 과 동일하지 않은 경우 true 를 반환합니다.
operator==()도 참조하십시오 .
QHttpPart &QHttpPart::operator=(const QHttpPart &other)
other 의 복사본을 생성합니다.
bool QHttpPart::operator==(const QHttpPart &other) const
이 객체가 other 와 동일한 경우(즉, 헤더와 본문이 동일한 경우) true 를 반환합니다.
operator!=()도 참조하십시오 .
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.