QFormDataPartBuilder Class

QFormDataPartBuilder 클래스는 QHttpPart 객체의 구성을 단순화하기 위한 편의 클래스입니다. 더 보기...

Header: #include <QFormDataPartBuilder>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network
이후: Qt 6.8

공용 함수

QFormDataPartBuilder(const QFormDataPartBuilder &other)
QFormDataPartBuilder(QFormDataPartBuilder &&other)
~QFormDataPartBuilder()
QFormDataPartBuilder setBody(QByteArrayView data, QAnyStringView fileName = {}, QAnyStringView mimeType = {})
QFormDataPartBuilder setBodyDevice(QIODevice *body, QAnyStringView fileName = {}, QAnyStringView mimeType = {})
QFormDataPartBuilder setHeaders(const QHttpHeaders &headers)
QFormDataPartBuilder &operator=(QFormDataPartBuilder &&other)
QFormDataPartBuilder &operator=(const QFormDataPartBuilder &other)

상세 설명

QFormDataPartBuilder 클래스는 콘텐츠 처리 헤더가 기본적으로 폼 데이터로 설정된 QHttpPart 객체를 빌드하는 데 사용할 수 있습니다. 그런 다음 생성된 객체를 다중 파트 메시지의 일부로 사용할 수 있습니다( QHttpMultiPart 클래스로 표시됨).

QHttpPart, QHttpMultiPart, QFormDataBuilder참조하세요 .

멤버 함수 문서

[noexcept default] QFormDataPartBuilder::QFormDataPartBuilder(const QFormDataPartBuilder &other)

other 의 복사본을 생성합니다. 이 객체는 연결된 QFormDataBuilder 이 파괴되지 않는 한 유효합니다.

복사본의 데이터는 공유됩니다(얕은 복사본): 한 부분을 수정하면 다른 부분도 변경됩니다.

QFormDataPartBuilder foo()
{
    QFormDataBuilder builder;
    auto qfdpb1 = builder.part("First"_L1);
    auto qfdpb2 = qfdpb1; // this creates a shallow copy

    qfdpb2.setBodyDevice(&image, "cutecat.jpg"); // qfdpb1 is also modified

    return qfdbp2;  // invalid, builder is destroyed at the end of the scope
}

[noexcept default] QFormDataPartBuilder::QFormDataPartBuilder(QFormDataPartBuilder &&other)

이동 - QFormDataPartBuilder 인스턴스를 생성하여 other 이 가리키고 있던 것과 동일한 객체를 가리키도록 합니다.

[noexcept default] QFormDataPartBuilder::~QFormDataPartBuilder()

QFormDataPartBuilder 객체를 삭제합니다.

QFormDataPartBuilder QFormDataPartBuilder::setBody(QByteArrayView data, QAnyStringView fileName = {}, QAnyStringView mimeType = {})

data 을 이 MIME 부분의 본문으로, fileName 을 콘텐츠 처분 헤더의 파일 이름 매개변수로 설정합니다.

mimeType 이 지정되지 않은 경우(비어 있는 경우) QFormDataPartBuilderQMimeDatabase 을 사용하여 data 의 밈 유형을 자동 감지하려고 시도합니다.

이후 setBodyDevice()로 호출하면 본문이 삭제되고 대신 디바이스가 사용됩니다.

대량의 데이터(예: 이미지)의 경우 내부적으로 데이터를 복사하지 않는 setBodyDevice()가 선호됩니다.

setBodyDevice()도 참조하세요 .

QFormDataPartBuilder QFormDataPartBuilder::setBodyDevice(QIODevice *body, QAnyStringView fileName = {}, QAnyStringView mimeType = {})

이 부분의 본문 디바이스로 body, 콘텐츠 처리 헤더의 파일 이름 파라미터로 fileName 을 설정합니다.

mimeType 이 지정되지 않은 경우(비어 있는 경우) QFormDataPartBuilderQMimeDatabase 을 사용하여 body 의 밈 유형을 자동 감지하려고 시도합니다.

이후 setBody()를 호출하면 본문 장치가 삭제되고 setBody()에 설정된 데이터가 대신 사용됩니다.

이 방법을 사용하면 콘텐츠가 복사되지 않고 디바이스에서 직접 읽히므로 대량의 데이터의 경우 setBody()보다 이 방법을 선호해야 합니다.

body QFormDataPartBuilderbody 의 소유권을 갖지 않습니다. 즉, 필요한 경우 디바이스를 닫고 파기해야 합니다.

참고: body 가 순차적(예: 파일이 아닌 소켓)인 경우 QNetworkAccessManager::post()은 body 가 finished()를 보낸 후에 호출해야 합니다.

setBody() 및 QHttpPart::setBodyDevice()도 참조하세요 .

QFormDataPartBuilder QFormDataPartBuilder::setHeaders(const QHttpHeaders &headers)

headers 에 지정된 헤더를 설정합니다.

참고: headers 에 지정된 "콘텐츠 유형" 및 "콘텐츠 처분" 헤더가 있는 경우 클래스에 의해 덮어쓰기됩니다.

[noexcept default] QFormDataPartBuilder &QFormDataPartBuilder::operator=(QFormDataPartBuilder &&other)

이동-이 other 인스턴스를 QFormDataPartBuilder 인스턴스에 할당합니다.

[noexcept default] QFormDataPartBuilder &QFormDataPartBuilder::operator=(const QFormDataPartBuilder &other)

otherQFormDataPartBuilder 에 할당하고 이 QFormDataPartBuilder 에 대한 참조를 반환합니다. 이 객체는 연결된 QFormDataBuilder 이 파괴되지 않는 한 유효합니다.

사본의 데이터는 공유됩니다(얕은 복사본): 한 부분을 수정하면 다른 부분도 변경됩니다.

QFormDataPartBuilder foo()
{
    QFormDataBuilder builder;
    auto qfdpb1 = builder.part("First"_L1);
    auto qfdpb2 = qfdpb1; // this creates a shallow copy

    qfdpb2.setBodyDevice(&image, "cutecat.jpg"); // qfdpb1 is also modified

    return qfdbp2;  // invalid, builder is destroyed at the end of the scope
}

© 2025 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.