QNetworkReply Class
QNetworkReply 클래스에는 QNetworkAccessManager 로 전송된 요청에 대한 데이터와 헤더가 포함되어 있습니다. 더 보기...
헤더: | #include <QNetworkReply> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake: | QT += network |
상속합니다: | QIODevice |
- 상속된 멤버를 포함한 모든 멤버 목록
- QNetworkReply는 네트워크 프로그래밍 API의 일부입니다.
참고: 이 클래스의 모든 함수는 재인용됩니다.
공용 유형
enum | NetworkError { NoError, ConnectionRefusedError, RemoteHostClosedError, HostNotFoundError, TimeoutError, …, UnknownServerError } |
RawHeaderPair |
공용 함수
virtual | ~QNetworkReply() |
QVariant | attribute(QNetworkRequest::Attribute code) const |
QNetworkReply::NetworkError | error() const |
bool | hasRawHeader(QAnyStringView headerName) const |
QVariant | header(QNetworkRequest::KnownHeaders header) const |
(since 6.8) QHttpHeaders | headers() const |
void | ignoreSslErrors(const QList<QSslError> &errors) |
bool | isFinished() const |
bool | isRunning() const |
QNetworkAccessManager * | manager() const |
QNetworkAccessManager::Operation | operation() const |
QByteArray | rawHeader(QAnyStringView headerName) const |
QList<QByteArray> | rawHeaderList() const |
const QList<QNetworkReply::RawHeaderPair> & | rawHeaderPairs() const |
qint64 | readBufferSize() const |
QNetworkRequest | request() const |
virtual void | setReadBufferSize(qint64 size) |
void | setSslConfiguration(const QSslConfiguration &config) |
QSslConfiguration | sslConfiguration() const |
QUrl | url() const |
재구현된 공용 함수
virtual void | close() override |
공용 슬롯
virtual void | abort() = 0 |
virtual void | ignoreSslErrors() |
Signals
void | downloadProgress(qint64 bytesReceived, qint64 bytesTotal) |
void | encrypted() |
void | errorOccurred(QNetworkReply::NetworkError code) |
void | finished() |
void | metaDataChanged() |
void | preSharedKeyAuthenticationRequired(QSslPreSharedKeyAuthenticator *authenticator) |
void | redirectAllowed() |
void | redirected(const QUrl &url) |
(since 6.3) void | requestSent() |
(since 6.3) void | socketStartedConnecting() |
void | sslErrors(const QList<QSslError> &errors) |
void | uploadProgress(qint64 bytesSent, qint64 bytesTotal) |
보호된 함수
QNetworkReply(QObject *parent = nullptr) | |
virtual void | ignoreSslErrorsImplementation(const QList<QSslError> &errors) |
void | setAttribute(QNetworkRequest::Attribute code, const QVariant &value) |
void | setError(QNetworkReply::NetworkError errorCode, const QString &errorString) |
void | setFinished(bool finished) |
void | setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value) |
(since 6.8) void | setHeaders(const QHttpHeaders &newHeaders) |
(since 6.8) void | setHeaders(QHttpHeaders &&newHeaders) |
void | setOperation(QNetworkAccessManager::Operation operation) |
void | setRawHeader(const QByteArray &headerName, const QByteArray &value) |
void | setRequest(const QNetworkRequest &request) |
virtual void | setSslConfigurationImplementation(const QSslConfiguration &configuration) |
void | setUrl(const QUrl &url) |
(since 6.8) void | setWellKnownHeader(QHttpHeaders::WellKnownHeader name, QByteArrayView value) |
virtual void | sslConfigurationImplementation(QSslConfiguration &configuration) const |
상세 설명
QNetworkReply 클래스는 QNetworkAccessManager 로 게시된 요청과 관련된 데이터 및 메타 데이터를 포함합니다. QNetworkRequest 과 마찬가지로 URL과 헤더(구문 및 원시 형식 모두), 응답 상태에 대한 일부 정보 및 응답 자체의 내용을 포함합니다.
QNetworkReply는 순차 액세스 QIODevice 로, 객체에서 데이터를 읽은 후에는 더 이상 디바이스에 보관되지 않습니다. 따라서 필요한 경우 이 데이터를 보관하는 것은 애플리케이션의 책임입니다. 네트워크에서 더 많은 데이터가 수신되어 처리될 때마다 readyRead() 신호가 전송됩니다.
downloadProgress() 신호도 데이터가 수신될 때 전송되지만, 콘텐츠에 변환(예: 프로토콜 오버헤드 압축 해제 및 제거)이 수행된 경우 포함된 바이트 수가 실제 수신된 바이트 수를 나타내지 않을 수 있습니다.
QNetworkReply는 회신 내용에 연결된 QIODevice 이지만, 이러한 내용이 있는 작업의 업로드 진행 상황을 나타내는 uploadProgress() 신호도 내보냅니다.
참고: errorOccurred() 또는 finished() 신호에 연결된 슬롯의 개체를 삭제하지 마세요. deleteLater ()를 사용하세요.
QNetworkRequest 및 QNetworkAccessManager 을참조하세요 .
회원 유형 문서
enum QNetworkReply::NetworkError
요청을 처리하는 동안 발견되는 모든 가능한 오류 조건을 나타냅니다.
상수 | 값 | 설명 |
---|---|---|
QNetworkReply::NoError | 0 | 오류 조건 없음. |
참고: HTTP 프로토콜이 리디렉션을 반환하면 오류가 보고되지 않습니다. QNetworkRequest::RedirectionTargetAttribute 속성을 사용하여 리디렉션이 있는지 확인할 수 있습니다.
상수 | 값 | 설명 |
---|---|---|
QNetworkReply::ConnectionRefusedError | 1 | 원격 서버가 연결을 거부했습니다(서버가 요청을 수락하지 않음). |
QNetworkReply::RemoteHostClosedError | 2 | 원격 서버가 전체 응답을 수신하고 처리하기 전에 연결을 조기에 종료했습니다. |
QNetworkReply::HostNotFoundError | 3 | 원격 호스트 이름을 찾을 수 없음(잘못된 호스트 이름) |
QNetworkReply::TimeoutError | 4 | 원격 서버에 대한 연결 시간이 초과되었습니다. |
QNetworkReply::OperationCanceledError | 5 | 작업이 완료되기 전에 abort() 또는 close() 호출을 통해 작업이 취소되었습니다. |
QNetworkReply::SslHandshakeFailedError | 6 | SSL/TLS 핸드셰이크가 실패하여 암호화된 채널을 설정할 수 없습니다. sslErrors () 신호가 전송되었어야 합니다. |
QNetworkReply::TemporaryNetworkFailureError | 7 | 네트워크 연결이 끊어져 연결이 끊어졌지만 시스템이 다른 액세스 포인트로 로밍을 시작했습니다. 요청을 다시 제출해야 하며 연결이 다시 설정되는 즉시 처리됩니다. |
QNetworkReply::NetworkSessionFailedError | 8 | 네트워크 연결이 끊어졌거나 네트워크 시작에 실패하여 연결이 끊어졌습니다. |
QNetworkReply::BackgroundRequestNotAllowedError | 9 | 플랫폼 정책으로 인해 백그라운드 요청이 현재 허용되지 않는 경우. |
QNetworkReply::TooManyRedirectsError | 10 | 리디렉션을 따르는 동안 최대 한도에 도달했습니다. 이 제한은 기본적으로 50으로 설정되거나 QNetworkRequest::setMaxRedirectsAllowed()에 의해 설정됩니다. (이 값은 5.6에 도입되었습니다.) |
QNetworkReply::InsecureRedirectError | 11 | 리디렉션을 따르는 동안 네트워크 액세스 API가 암호화된 프로토콜(https)에서 암호화되지 않은 프로토콜(http)로의 리디렉션을 감지했습니다. (이 값은 5.6에서 도입되었습니다.) |
QNetworkReply::ProxyConnectionRefusedError | 101 | 프록시 서버에 대한 연결이 거부되었습니다(프록시 서버가 요청을 수락하지 않음). |
QNetworkReply::ProxyConnectionClosedError | 102 | 프록시 서버가 전체 응답을 수신하고 처리하기 전에 연결을 조기에 종료했습니다. |
QNetworkReply::ProxyNotFoundError | 103 | 프록시 호스트 이름을 찾을 수 없음(잘못된 프록시 호스트 이름) |
QNetworkReply::ProxyTimeoutError | 104 | 프록시에 대한 연결 시간이 초과되었거나 프록시가 전송된 요청에 제때 응답하지 않았습니다. |
QNetworkReply::ProxyAuthenticationRequiredError | 105 | 프록시가 요청을 처리하기 위해 인증이 필요하지만 제공된 자격 증명을 수락하지 않았습니다(있는 경우). |
QNetworkReply::ContentAccessDenied | 201 | 원격 콘텐츠에 대한 액세스가 거부된 경우(HTTP 오류 403과 유사) |
QNetworkReply::ContentOperationNotPermittedError | 202 | 원격 콘텐츠에 대해 요청된 작업이 허용되지 않습니다. |
QNetworkReply::ContentNotFoundError | 203 | 서버에서 원격 콘텐츠를 찾을 수 없습니다(HTTP 오류 404와 유사). |
QNetworkReply::AuthenticationRequiredError | 204 | 원격 서버에서 콘텐츠를 제공하기 위해 인증이 필요하지만 제공된 자격 증명이 수락되지 않았습니다(있는 경우). |
QNetworkReply::ContentReSendError | 205 | 요청을 다시 보내야 하지만 업로드 데이터를 두 번째로 읽을 수 없어 요청이 실패했습니다. |
QNetworkReply::ContentConflictError | 206 | 리소스의 현재 상태와 충돌로 인해 요청을 완료할 수 없습니다. |
QNetworkReply::ContentGoneError | 207 | 요청된 리소스를 더 이상 서버에서 사용할 수 없습니다. |
QNetworkReply::InternalServerError | 401 | 서버에 예기치 않은 조건이 발생하여 요청을 완료할 수 없습니다. |
QNetworkReply::OperationNotImplementedError | 402 | 서버가 요청을 이행하는 데 필요한 기능을 지원하지 않습니다. |
QNetworkReply::ServiceUnavailableError | 403 | 서버가 현재 요청을 처리할 수 없습니다. |
QNetworkReply::ProtocolUnknownError | 301 | 프로토콜을 알 수 없기 때문에 네트워크 액세스 API가 요청을 처리할 수 없습니다. |
QNetworkReply::ProtocolInvalidOperationError | 302 | 요청된 작업이 이 프로토콜에 대해 유효하지 않습니다. |
QNetworkReply::UnknownNetworkError | 99 | 알 수 없는 네트워크 관련 오류가 감지되었습니다. |
QNetworkReply::UnknownProxyError | 199 | 알 수 없는 프록시 관련 오류가 감지되었습니다. |
QNetworkReply::UnknownContentError | 299 | 원격 콘텐츠와 관련된 알 수 없는 오류가 감지되었습니다. |
QNetworkReply::ProtocolFailure | 399 | 프로토콜의 고장이 감지되었습니다(구문 분석 오류, 유효하지 않거나 예기치 않은 응답 등). |
QNetworkReply::UnknownServerError | 499 | 서버 응답과 관련된 알 수 없는 오류가 감지되었습니다. |
error() 및 errorOccurred()도 참조하세요 .
QNetworkReply::RawHeaderPair
RawHeaderPair는 QPair<QByteArray, QByteArray>로, 첫 번째 QByteArray 는 헤더 이름이고 두 번째는 헤더입니다.
멤버 함수 문서
[explicit protected]
QNetworkReply::QNetworkReply(QObject *parent = nullptr)
부모 parent 를 가진 QNetworkReply 객체를 생성합니다.
QNetworkReply 객체를 직접 인스턴스화할 수 없습니다. QNetworkAccessManager 함수를 사용하세요.
[virtual noexcept]
QNetworkReply::~QNetworkReply()
이 답장을 폐기하고 관련된 모든 리소스를 해제합니다. 네트워크 연결이 아직 열려 있으면 닫힙니다.
[pure virtual slot]
void QNetworkReply::abort()
작업을 즉시 중단하고 아직 열려 있는 모든 네트워크 연결을 닫습니다. 진행 중인 업로드도 중단됩니다.
finished() 신호도 전송됩니다.
QVariant QNetworkReply::attribute(QNetworkRequest::Attribute code) const
코드와 연관된 속성을 반환합니다 code. 속성이 설정되지 않은 경우 잘못된 QVariant (유형 QMetaType::UnknownType)를 반환합니다.
QNetworkRequest::Attribute 에 나열된 기본값이 이 함수가 반환하는 값에 적용될 것으로 예상할 수 있습니다.
setAttribute() 및 QNetworkRequest::Attribute 을참조하세요 .
[override virtual]
void QNetworkReply::close()
다시 구현합니다: QIODevice::close().
읽을 수 있도록 이 장치를 닫습니다. 읽지 않은 데이터는 버려지지만 네트워크 리소스는 완료될 때까지 버려지지 않습니다. 특히 업로드가 진행 중인 경우 업로드가 완료될 때까지 계속됩니다.
finished() 신호는 모든 작업이 끝나고 네트워크 리소스가 해제되면 전송됩니다.
[signal]
void QNetworkReply::downloadProgress(qint64 bytesReceived, qint64 bytesTotal)
이 신호는 이 네트워크 요청의 다운로드 부분의 진행 상황을 알리기 위해 전송됩니다(다운로드가 있는 경우). 이 요청과 관련된 다운로드가 없는 경우 이 신호는 bytesReceived 및 bytesTotal 의 값이 모두 0으로 한 번만 전송됩니다.
bytesReceived 매개변수는 수신된 바이트 수를 나타내며 bytesTotal 은 다운로드할 것으로 예상되는 총 바이트 수를 나타냅니다. 다운로드할 바이트 수를 알 수 없는 경우 bytesTotal 은 -1이 됩니다.
bytesReceived 이 bytesTotal 과 같으면 다운로드가 완료됩니다. 이때 bytesTotal 은 -1이 되지 않습니다.
bytesReceived 와 bytesTotal 의 값은 size(), read() 또는 readAll()를 통해 얻은 총 바이트 수 또는 헤더(ContentLengthHeader)의 값과 다를 수 있습니다. 그 이유는 프로토콜 오버헤드가 발생하거나 다운로드 중에 데이터가 압축될 수 있기 때문입니다.
uploadProgress() 및 bytesAvailable()도 참조하세요 .
[signal]
void QNetworkReply::encrypted()
이 신호는 SSL/TLS 세션이 초기 핸드셰이크를 성공적으로 완료했을 때 발생합니다. 이 시점에서는 사용자 데이터가 전송되지 않았습니다. 이 신호는 웹사이트의 인증서가 변경되었을 때 사용자에게 알리는 등 인증서 체인에 대한 추가 확인을 수행하는 데 사용할 수 있습니다. 응답이 예상 기준과 일치하지 않으면 이 신호에 연결된 슬롯에서 QNetworkReply::abort()를 호출하여 중단해야 합니다. 사용 중인 SSL 구성은 QNetworkReply::sslConfiguration() 메서드를 사용하여 검사할 수 있습니다.
내부적으로 QNetworkAccessManager 은 요청을 병렬로 처리할 수 있도록 서버에 대한 여러 연결을 열 수 있습니다. 이러한 연결은 재사용될 수 있으며, 이는 암호화된() 신호가 전송되지 않음을 의미합니다. 즉, QNetworkAccessManager 의 수명 기간 동안 사이트에 대한 첫 번째 연결에 대해서만 이 신호를 수신할 수 있습니다.
QSslSocket::encrypted() 및 QNetworkAccessManager::encrypted()도 참조하세요 .
QNetworkReply::NetworkError QNetworkReply::error() const
이 요청을 처리하는 동안 발견된 오류를 반환합니다. 오류가 발견되지 않으면 NoError 를 반환합니다.
setError()도 참조하세요 .
[signal]
void QNetworkReply::errorOccurred(QNetworkReply::NetworkError code)
이 신호는 응답에서 처리 중 오류를 감지하면 전송됩니다. finished () 신호는 연결이 끝났음을 나타내는 신호가 뒤따를 수 있습니다.
code 매개변수에는 감지된 오류의 코드가 포함되어 있습니다. errorString ()를 호출하여 오류 조건에 대한 텍스트 표현을 얻습니다.
참고: 이 신호에 연결된 슬롯의 객체를 삭제하지 마세요. deleteLater ()를 사용하세요.
error() 및 errorString()도 참조하세요 .
[signal]
void QNetworkReply::finished()
이 신호는 회신 처리가 완료되면 전송됩니다. 이 신호가 전송된 후에는 회신 데이터나 메타데이터가 더 이상 업데이트되지 않습니다.
close() 또는 abort()가 호출되지 않는 한 회신은 여전히 읽을 수 있도록 열려 있으므로 read() 또는 readAll()로 호출하여 데이터를 검색할 수 있습니다. 특히 readyRead()의 결과로 read()로 호출되지 않은 경우 readAll()로 호출하면 QByteArray 에서 전체 내용을 검색할 수 있습니다.
이 신호는 QNetworkAccessManager::finished()와 함께 전송되며, 해당 신호의 응답 매개변수는 이 객체입니다.
참고: 이 신호에 연결된 슬롯의 객체를 삭제하지 마세요. deleteLater ()를 사용합니다.
isFinished()를 사용하여 finished() 신호를 받기 전에도 QNetworkReply 이 완료되었는지 확인할 수도 있습니다.
setFinished(), QNetworkAccessManager::finished() 및 isFinished()도 참조하세요 .
bool QNetworkReply::hasRawHeader(QAnyStringView headerName) const
원격 서버에서 headerName 이라는 이름의 원시 헤더를 보낸 경우 true
을 반환합니다.
참고: 6.7 이전 Qt 버전에서는 이 함수는 QByteArray 만 받습니다.
rawHeader()도 참조하십시오 .
QVariant QNetworkReply::header(QNetworkRequest::KnownHeaders header) const
원격 서버에서 헤더를 보낸 경우 알려진 헤더 header 의 값을 반환합니다. 헤더가 전송되지 않은 경우 잘못된 QVariant 을 반환합니다.
rawHeader(), setHeader() 및 QNetworkRequest::header()도 참조하세요 .
[since 6.8]
QHttpHeaders QNetworkReply::headers() const
원격 서버에서 보낸 헤더를 반환합니다.
이 함수는 Qt 6.8에 도입되었습니다.
setHeaders(), QNetworkRequest::setAttribute() 및 QNetworkRequest::Attribute 를참조하십시오 .
[virtual slot]
void QNetworkReply::ignoreSslErrors()
이 함수를 호출하면 인증서 유효성 검사 오류를 포함하여 네트워크 연결과 관련된 SSL 오류는 무시됩니다.
경고: 항상 사용자가 sslErrors() 신호로 보고된 오류를 검사하도록 하고, 진행이 정상이라는 사용자의 확인이 있을 때만 이 메서드를 호출해야 합니다. 예기치 않은 오류가 발생하면 응답을 중단해야 합니다. 실제 오류를 검사하지 않고 이 메서드를 호출하면 애플리케이션에 보안 위험이 발생할 가능성이 높습니다. 주의해서 사용하세요!
이 함수는 발견된 오류를 나타내는 sslErrors() 신호에 연결된 슬롯에서 호출할 수 있습니다.
참고: QNetworkAccessManager 에 대해 HTTP 엄격한 전송 보안이 활성화된 경우 이 함수는 효과가 없습니다.
sslConfiguration(), sslErrors(), QSslSocket::ignoreSslErrors()도 참조하세요 .
void QNetworkReply::ignoreSslErrors(const QList<QSslError> &errors)
이 함수는 오버로드된 함수입니다.
이 함수가 호출되면 errors 에 제공된 SSL 오류는 무시됩니다.
참고: 대부분의 SSL 오류는 인증서와 연관되어 있으므로 대부분의 경우 이 SSL 오류와 연관된 예상 인증서를 설정해야 합니다. 예를 들어 자체 서명 인증서를 사용하는 서버에 요청을 발행하려는 경우 다음 스니펫을 고려하세요:
QList<QSslCertificate> cert = QSslCertificate::fromPath("server-certificate.pem"_L1); QSslError error(QSslError::SelfSignedCertificate, cert.at(0)); QList<QSslError> expectedSslErrors; expectedSslErrors.append(error); QNetworkReply *reply = manager.get(QNetworkRequest(QUrl("https://server.tld/index.html"))); reply->ignoreSslErrors(expectedSslErrors); // here connect signals etc.
이 함수를 여러 번 호출하면 이전 호출에서 전달된 오류 목록이 대체됩니다. 이 함수를 빈 목록으로 호출하여 무시할 오류 목록을 지울 수 있습니다.
참고: QNetworkAccessManager 에 대해 HTTP 엄격한 전송 보안이 활성화된 경우 이 함수는 효과가 없습니다.
sslConfiguration(), sslErrors(), QSslSocket::ignoreSslErrors(), QNetworkAccessManager::setStrictTransportSecurityEnabled()도 참조하세요 .
[virtual protected]
void QNetworkReply::ignoreSslErrorsImplementation(const QList<QSslError> &errors)
이 가상 메서드는 ignoreSslErrors()의 동작을 재정의할 수 있도록 제공됩니다. ignoreSslErrors()는 이 메서드의 공개 래퍼입니다. errors 에는 사용자가 무시하려는 오류가 포함되어 있습니다.
ignoreSslErrors()도 참조하세요 .
bool QNetworkReply::isFinished() const
회신이 완료되었거나 중단된 경우 true
을 반환합니다.
isRunning()도 참조하세요 .
bool QNetworkReply::isRunning() const
요청이 아직 처리 중이고 응답이 완료되지 않았거나 아직 중단된 경우 true
을 반환합니다.
isFinished()도 참조하세요 .
QNetworkAccessManager *QNetworkReply::manager() const
이 QNetworkReply 객체를 만드는 데 사용된 QNetworkAccessManager 을 반환합니다. 처음에는 부모 객체이기도 합니다.
[signal]
void QNetworkReply::metaDataChanged()
이 신호는 이 응답의 메타데이터가 변경될 때마다 전송됩니다. 메타데이터는 네트워크 헤더를 포함하여 콘텐츠(데이터) 자체가 아닌 모든 정보를 말합니다. 대부분의 경우 메타데이터는 데이터의 첫 바이트가 수신될 때 완전히 알 수 있습니다. 그러나 데이터를 처리하는 동안 헤더 또는 기타 메타데이터의 업데이트를 수신할 수 있습니다.
header(), rawHeaderList(), rawHeader() 및 hasRawHeader()도 참조하세요 .
QNetworkAccessManager::Operation QNetworkReply::operation() const
이 답글에 대해 게시된 작업을 반환합니다.
setOperation()도 참조하세요 .
[signal]
void QNetworkReply::preSharedKeyAuthenticationRequired(QSslPreSharedKeyAuthenticator *authenticator)
이 신호는 SSL/TLS 핸드셰이크가 PSK 암호 스위트를 협상하는 경우 발생하며, 따라서 PSK 인증이 필요합니다.
PSK를 사용할 때 클라이언트는 유효한 ID와 유효한 사전 공유 키를 서버에 보내야 SSL 핸드셰이크를 계속할 수 있습니다. 애플리케이션은 필요에 따라 전달된 authenticator 객체를 채워 이 신호에 연결된 슬롯에 이 정보를 제공할 수 있습니다.
참고: 이 신호를 무시하거나 필요한 자격 증명을 제공하지 않으면 핸드셰이크가 실패하여 연결이 중단됩니다.
참고: authenticator 개체는 응답자가 소유하며 애플리케이션에서 삭제해서는 안 됩니다.
QSslPreSharedKeyAuthenticator도 참조하세요 .
QByteArray QNetworkReply::rawHeader(QAnyStringView headerName) const
원격 서버에서 보낸 headerName 헤더의 원시 내용을 반환합니다. 이러한 헤더가 없는 경우 빈 헤더와 구분할 수 없는 빈 바이트 배열을 반환합니다. hasRawHeader ()를 사용하여 서버가 이러한 헤더 필드를 보냈는지 확인합니다.
참고: 6.7 이전 Qt 버전에서는 이 함수는 QByteArray 만 사용했습니다.
setRawHeader(), hasRawHeader() 및 header()도 참조하세요 .
QList<QByteArray> QNetworkReply::rawHeaderList() const
원격 서버에서 보낸 헤더 필드의 목록을 전송된 순서대로 반환합니다. 중복된 헤더는 병합되어 나중에 중복된 헤더를 대신합니다.
const QList<QNetworkReply::RawHeaderPair> &QNetworkReply::rawHeaderPairs() const
원시 헤더 쌍의 목록을 반환합니다.
qint64 QNetworkReply::readBufferSize() const
읽기 버퍼의 크기를 바이트 단위로 반환합니다.
setReadBufferSize()도 참조하세요 .
[signal]
void QNetworkReply::redirectAllowed()
redirected() 신호를 처리하는 클라이언트 코드가 새 URL을 확인하면 이 신호를 전송하여 리디렉션을 진행하도록 허용합니다. 이 프로토콜은 리디렉션 정책이 다음과 같이 설정된 네트워크 요청에 적용됩니다. QNetworkRequest::UserVerifiedRedirectPolicy
QNetworkRequest::UserVerifiedRedirectPolicy, QNetworkAccessManager::setRedirectPolicy() 및 QNetworkRequest::RedirectPolicyAttribute 를참조하세요 .
[signal]
void QNetworkReply::redirected(const QUrl &url)
이 신호는 요청에 QNetworkRequest::ManualRedirectPolicy 이 설정되지 않았고 서버가 위치 헤더에 유효한 URL이 포함된 3xx 상태(특히 301, 302, 303, 305, 307 또는 308 상태 코드)로 응답하여 HTTP 리디렉션을 나타내는 경우 전송됩니다. url 매개변수에는 위치 헤더에 서버가 반환한 새 리디렉션 URL이 포함됩니다.
QNetworkRequest::RedirectPolicy 를참조하세요 .
QNetworkRequest QNetworkReply::request() const
이 답글에 대해 게시된 요청을 반환합니다. 특히 요청의 URL이 답장의 URL과 다를 수 있다는 점에 유의하세요.
QNetworkRequest::url(), url() 및 setRequest()도 참조하세요 .
[signal, since 6.3]
void QNetworkReply::requestSent()
이 신호는 요청이 전송되었을 때 1회 이상 발신됩니다. 사용자 정의 진행률 또는 시간 초과 처리에 유용합니다.
이 함수는 Qt 6.3에 도입되었습니다.
metaDataChanged() 및 socketStartedConnecting()도 참조하세요 .
[protected]
void QNetworkReply::setAttribute(QNetworkRequest::Attribute code, const QVariant &value)
code 속성이 value 값을 갖도록 설정합니다. code 이 이전에 설정된 경우 재정의됩니다. value 가 잘못된 QVariant 인 경우 속성이 설정 해제됩니다.
attribute() 및 QNetworkRequest::setAttribute()도 참조하세요 .
[protected]
void QNetworkReply::setError(QNetworkReply::NetworkError errorCode, const QString &errorString)
오류 조건을 errorCode 로 설정합니다. 사람이 읽을 수 있는 메시지는 errorString 로 설정합니다.
setError()를 호출해도 errorOccurred(QNetworkReply::NetworkError) 신호가 전송되지 않습니다.
error() 및 errorString()도 참조하세요 .
[protected]
void QNetworkReply::setFinished(bool finished)
답글을 finished 으로 설정합니다.
이 설정을 한 후에는 회신 데이터가 변경되지 않아야 합니다.
finished() 및 isFinished()도 참조하세요 .
[protected]
void QNetworkReply::setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value)
알려진 헤더 header 를 값 value 으로 설정합니다. 헤더의 해당 원시 형식도 설정됩니다.
header(), setRawHeader() 및 QNetworkRequest::setHeader()도 참조하세요 .
[protected, since 6.8]
void QNetworkReply::setHeaders(const QHttpHeaders &newHeaders)
이 네트워크 응답의 헤더로 newHeaders 을 설정하여 이전에 설정된 모든 헤더를 재정의합니다.
일부 헤더가 알려진 헤더에 해당하는 경우 해당 헤더가 구문 분석되고 해당 구문 분석된 양식도 설정됩니다.
이 함수는 Qt 6.8에 도입되었습니다.
headers() 및 QNetworkRequest::KnownHeaders 을참조하세요 .
[protected, since 6.8]
void QNetworkReply::setHeaders(QHttpHeaders &&newHeaders)
이 함수는 오버로드된 함수입니다.
이 함수는 Qt 6.8에 도입되었습니다.
[protected]
void QNetworkReply::setOperation(QNetworkAccessManager::Operation operation)
이 객체에 대한 연관된 작업을 operation 로 설정합니다. 이 값은 operation()에 의해 반환됩니다.
참고: 이 연산은 이 객체를 만들 때 설정하고 다시 변경하지 않아야 합니다.
operation() 및 setRequest()도 참조하세요 .
[protected]
void QNetworkReply::setRawHeader(const QByteArray &headerName, const QByteArray &value)
원시 헤더 headerName 를 value 값으로 설정합니다. headerName 이 이전에 설정된 경우 재정의됩니다. 같은 이름의 여러 HTTP 헤더는 쉼표로 구분된 값이 연결된 하나의 단일 헤더와 기능적으로 동일합니다.
headerName 이 알려진 헤더와 일치하는 경우 value 값이 구문 분석되고 해당 구문 분석된 양식도 설정됩니다.
rawHeader(), header(), setHeader() 및 QNetworkRequest::setRawHeader()도 참조하세요 .
[virtual]
void QNetworkReply::setReadBufferSize(qint64 size)
읽기 버퍼의 크기를 size 바이트로 설정합니다. 읽기 버퍼는 QIODevice::read()로 읽기 전에 네트워크에서 다운로드되는 데이터를 보관하는 버퍼입니다. 버퍼 크기를 0으로 설정하면 버퍼의 크기가 무제한이 됩니다.
QNetworkReply 이 버퍼가 가득 차면(즉, bytesAvailable()가 size 이상을 반환하는 경우) 네트워크에서 읽기를 중지하려고 시도하므로 다운로드도 스로틀 다운이 발생합니다. 버퍼의 크기가 제한되지 않은 경우 QNetworkReply 은 네트워크에서 가능한 한 빨리 다운로드하려고 시도합니다.
QAbstractSocket::setReadBufferSize()와 달리 QNetworkReply ()는 읽기 버퍼 크기의 정밀도를 보장할 수 없습니다. 즉, bytesAvailable()는 size 보다 더 많은 것을 반환할 수 있습니다.
readBufferSize()도 참조하세요 .
[protected]
void QNetworkReply::setRequest(const QNetworkRequest &request)
이 객체에 대한 관련 요청을 request 로 설정합니다. 이 값은 request()에 의해 반환됩니다.
참고: 요청은 이 객체를 만들 때 설정해야 하며 다시 변경하지 않아야 합니다.
request() 및 setOperation()도 참조하세요 .
void QNetworkReply::setSslConfiguration(const QSslConfiguration &config)
이 요청과 관련된 네트워크 연결의 SSL 구성을 가능한 경우 config 의 구성으로 설정합니다.
sslConfiguration()도 참조하세요 .
[virtual protected]
void QNetworkReply::setSslConfigurationImplementation(const QSslConfiguration &configuration)
이 가상 메서드는 setSslConfiguration()의 동작을 재정의할 수 있도록 제공됩니다. setSslConfiguration()는 이 메서드의 공개 래퍼입니다. 이 메서드를 재정의하는 경우 configuration 를 사용하여 SSL 구성을 설정합니다.
sslConfigurationImplementation() 및 setSslConfiguration()도 참조하세요 .
[protected]
void QNetworkReply::setUrl(const QUrl &url)
처리 중인 URL을 url 으로 설정합니다. 일반적으로 URL은 게시된 요청의 URL과 일치하지만 여러 가지 이유로 다를 수 있습니다(예: 파일 경로가 절대 또는 표준이 되는 경우).
url(), request(), QNetworkRequest::url()도 참조하세요 .
[protected, since 6.8]
void QNetworkReply::setWellKnownHeader(QHttpHeaders::WellKnownHeader name, QByteArrayView value)
name 헤더를 value 값으로 설정합니다. name 이 이전에 설정되어 있으면 재정의됩니다.
이 함수는 Qt 6.8에 도입되었습니다.
[signal, since 6.3]
void QNetworkReply::socketStartedConnecting()
이 신호는 소켓이 연결 중일 때 요청을 보내기 전에 0회 이상 발산됩니다. 사용자 정의 진행률 또는 시간 초과 처리에 유용합니다.
이 함수는 Qt 6.3에 도입되었습니다.
metaDataChanged() 및 requestSent()도 참조하세요 .
QSslConfiguration QNetworkReply::sslConfiguration() const
SSL이 사용된 경우 이 응답과 관련된 SSL 구성 및 상태를 반환합니다. 여기에는 원격 서버의 인증서, 인증 기관으로 연결되는 인증서 체인 및 사용 중인 암호화 암호가 포함됩니다.
상대방의 인증서와 인증서 체인은 sslErrors()가 전송될 때(전송되는 경우) 알 수 있습니다.
setSslConfiguration()도 참조하세요 .
[virtual protected]
void QNetworkReply::sslConfigurationImplementation(QSslConfiguration &configuration) const
이 가상 메서드는 sslConfiguration()의 동작을 재정의할 수 있도록 제공됩니다. sslConfiguration()는 이 메서드의 공용 래퍼입니다. 구성은 configuration 에 반환됩니다.
setSslConfigurationImplementation() 및 sslConfiguration()도 참조하세요 .
[signal]
void QNetworkReply::sslErrors(const QList<QSslError> &errors)
이 신호는 설정 중에 인증서 확인 오류를 포함하여 SSL/TLS 세션에 오류가 발생한 경우 전송됩니다. errors 매개변수에는 오류 목록이 포함됩니다.
오류가 치명적이지 않으며 연결을 계속 진행해야 함을 나타내려면 이 신호에 연결된 슬롯에서 ignoreSslErrors() 함수를 호출해야 합니다. 이 함수가 호출되지 않으면 데이터(URL 포함)가 교환되기 전에 SSL 세션이 종료됩니다.
이 신호는 보안이 손상될 수 있음을 나타내는 오류 메시지를 사용자에게 표시하고 SSL 설정을 표시하는 데 사용할 수 있습니다( sslConfiguration() 참조). 사용자가 원격 인증서를 분석한 후 계속 진행하기로 결정한 경우 ignoreSslErrors()를 호출해야 합니다.
QSslSocket::sslErrors(), QNetworkAccessManager::sslErrors(), sslConfiguration() 및 ignoreSslErrors()도 참조하세요 .
[signal]
void QNetworkReply::uploadProgress(qint64 bytesSent, qint64 bytesTotal)
이 신호는 이 네트워크 요청의 업로드 부분이 있는 경우 진행 상황을 알리기 위해 발신됩니다. 이 요청과 관련된 업로드가 없는 경우 이 신호는 전송되지 않습니다.
bytesSent 매개변수는 업로드된 바이트 수를 나타내며 bytesTotal 은 업로드할 총 바이트 수를 나타냅니다. 업로드할 바이트 수를 확인할 수 없는 경우 bytesTotal 은 -1이 됩니다.
bytesSent 이 bytesTotal 과 같으면 업로드가 완료됩니다. 이때 bytesTotal 은 -1이 되지 않습니다.
downloadProgress()도 참조하세요 .
QUrl QNetworkReply::url() const
다운로드 또는 업로드한 콘텐츠의 URL을 반환합니다. URL은 원래 요청의 URL과 다를 수 있습니다. 요청에서 리디렉션이 활성화된 경우 이 함수는 네트워크 API가 액세스하고 있는 현재 URL, 즉 요청이 리디렉션된 리소스의 URL을 반환합니다.
request(), setUrl(), QNetworkRequest::url() 및 redirected()도 참조하세요 .
© 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.