QWebEngineUrlRequestJob Class
QWebEngineUrlRequestJob 클래스는 사용자 지정 URL 요청을 나타냅니다. 더 보기...
헤더: | #include <QWebEngineUrlRequestJob> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS WebEngineCore) target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore) |
qmake: | QT += webenginecore |
상속합니다: | QObject |
공용 유형
enum | Error { NoError, UrlNotFound, UrlInvalid, RequestAborted, RequestDenied, RequestFailed } |
공용 함수
void | fail(QWebEngineUrlRequestJob::Error r) |
QUrl | initiator() const |
void | redirect(const QUrl &url) |
void | reply(const QByteArray &contentType, QIODevice *device) |
(since 6.7) QIODevice * | requestBody() const |
QMap<QByteArray, QByteArray> | requestHeaders() const |
QByteArray | requestMethod() const |
QUrl | requestUrl() const |
(since 6.6) void | setAdditionalResponseHeaders(const QMultiMap<QByteArray, QByteArray> &additionalResponseHeaders) const |
상세 설명
QWebEngineUrlRequestJob은 QWebEngineUrlSchemeHandler::requestStarted()에 제공되며 클래스의 파생 구현에서 처리해야 합니다. 이 작업은 reply(), redirect() 또는 fail()를 호출하여 처리할 수 있습니다.
클래스는 웹 엔진이 소유하며 삭제할 필요가 없습니다. 그러나 웹 엔진은 더 이상 필요하지 않은 경우 작업을 삭제할 수 있으므로 객체에 대한 포인터가 저장되어 있는 경우 QObject::destroyed() 신호를 모니터링해야 합니다.
멤버 유형 문서
enum QWebEngineUrlRequestJob::Error
이 열거형에는 발생한 오류의 유형이 저장됩니다:
상수 | 값 | 설명 |
---|---|---|
QWebEngineUrlRequestJob::NoError | 0 | 요청이 성공했습니다. (Qt 6.8부터 사용 중단됨) |
QWebEngineUrlRequestJob::UrlNotFound | 1 | 요청된 URL을 찾을 수 없습니다. |
QWebEngineUrlRequestJob::UrlInvalid | 2 | 요청된 URL이 유효하지 않습니다. |
QWebEngineUrlRequestJob::RequestAborted | 3 | 요청이 취소되었습니다. |
QWebEngineUrlRequestJob::RequestDenied | 4 | 요청이 거부되었습니다. |
QWebEngineUrlRequestJob::RequestFailed | 5 | 요청이 실패했습니다. |
멤버 기능 문서
void QWebEngineUrlRequestJob::fail(QWebEngineUrlRequestJob::Error r)
오류와 함께 요청에 실패합니다 r.
Error도 참조하세요 .
QUrl QWebEngineUrlRequestJob::initiator() const
요청을 시작한 콘텐츠의 직렬화된 원본을 반환합니다.
일반적으로 원본은 스키마, 호스트 이름, 포트로 구성됩니다. 예를 들어 "http://localhost:8080"
이 유효한 원본입니다. 포트는 스키마의 기본 포트인 경우 생략됩니다( http
의 경우 80, https
의 경우 443). 호스트 이름은 file
및 qrc
과 같은 비네트워크 스키마의 경우 생략됩니다.
그러나 고유한 오리진을 나타내는 특수 값 "null"
도 있습니다. 예를 들어 샌드박스가 적용된 iframe의 오리진입니다. 이 특수 출처의 목적은 동일 출처 확인에서 다른 모든 출처와 항상 다르게 하는 것입니다. 즉, 고유한 출처를 가진 콘텐츠는 다른 콘텐츠에 대한 권한 액세스 권한을 가져서는 안 됩니다.
마지막으로, 요청이 웹 콘텐츠에 의해 시작되지 않은 경우 함수는 빈 QUrl 을 반환합니다. 예를 들어 QWebEnginePage::setUrl()을 호출할 때 이런 일이 발생합니다.
이 값은 안전한 교차 출처 검사를 구현하는 데 사용할 수 있습니다.
void QWebEngineUrlRequestJob::redirect(const QUrl &url)
요청을 url 로 리디렉션합니다.
void QWebEngineUrlRequestJob::reply(const QByteArray &contentType, QIODevice *device)
device 및 콘텐츠 유형 contentType 으로 요청에 응답합니다. 콘텐츠 유형은 HTTP Content-Type 헤더와 유사하며, MIME 유형이거나 다음과 같이 MIME 유형과 문자셋 인코딩이 결합된 형태일 수 있습니다: "text/html; charset=utf-8".
사용자는 작업이 삭제될 때까지 device 이 다른 스레드에서 사용된다는 점에 유의해야 합니다. 메인 스레드에서 동시에 액세스해야 하는 경우 사용자는 QMutex 을 사용하여 device 스레드에 안전하게 액세스할 수 있도록 할 책임이 있습니다. device 객체는 웹 엔진이 소유하지 않습니다. 따라서 QWebEngineUrlRequestJob 의 QObject::destroyed() 신호를 모니터링해야 합니다.
적어도 작업이 존재하는 동안에는 장치를 계속 사용할 수 있어야 합니다. 새로 만든 디바이스로 이 메서드를 호출할 때는 다음과 같이 디바이스를 작업의 하위로 만들거나 작업이 삭제될 때 디바이스 자체를 삭제하는 것이 한 가지 해결책입니다:
[since 6.7]
QIODevice *QWebEngineUrlRequestJob::requestBody() const
요청 본문에 액세스할 수 있는 QIODevice 포인터를 반환합니다. 요청 본문은 예를 들어 요청이 POST 요청인 경우 데이터를 포함할 수 있습니다. 요청 본문이 비어 있으면 QIODevice 은 이를 반영하여 읽기 작업을 수행할 때 어떤 데이터도 반환하지 않습니다.
이 함수는 Qt 6.7에 도입되었습니다.
QIODevice 를참조하세요 .
QMap<QByteArray, QByteArray> QWebEngineUrlRequestJob::requestHeaders() const
요청에 추가된 모든 HTTP 헤더를 반환합니다.
QByteArray QWebEngineUrlRequestJob::requestMethod() const
요청의 HTTP 메서드(예: GET 또는 POST)를 반환합니다.
QUrl QWebEngineUrlRequestJob::requestUrl() const
요청된 URL을 반환합니다.
[since 6.6]
void QWebEngineUrlRequestJob::setAdditionalResponseHeaders(const QMultiMap<QByteArray, QByteArray> &additionalResponseHeaders) const
설정 additionalResponseHeaders. 이러한 응답의 추가 헤더는 QWebEngineUrlRequestJob::reply(const QByteArray&, QIODevice*)가 호출될 때만 사용됩니다.
이 함수는 Qt 6.6에 도입되었습니다.
© 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.