HttpHeader

Description

The HttpHeader object represents a single HTTP header which is sent to or received from HTTP servers through HttpRequest and HttpResponse objects.

› Inherits:Object

Properties

customHeader

This property holds the name of a custom HTTP header field which is used when type is set to HttpHeader.Custom.

› Type:String
› Signal:customHeaderChanged()
› Attributes:Writable

data

This property holds the data for the HTTP header represented by this object. The data type depends on the header type but usually a string can be used. Use a DateTime object for the header types HttpHeader.LastModified and HttpHeader.IfModifiedSince. This allows dealing with dates easily and let them being converted to properly formatted date strings automatically.

› Type:Variant
› Signal:dataChanged()
› Attributes:Writable

type

This property holds the type of the HTTP header represented by this object.

› Type:Type
› Default:HttpHeader.Custom
› Signal:typeChanged()
› Attributes:Writable

Enumerations

Type

This enumeration describes the supported HTTP header types as described in RFC 2616 Section 14.

Name Value Description
HttpHeader.ContentType 0 Corresponds to the HTTP Content-Type header and contains a string containing the media (MIME) type and any auxiliary data (for instance, charset).
HttpHeader.ContentLength 1 Corresponds to the HTTP Content-Length header and contains the length in bytes of the data transmitted.
HttpHeader.Location 2 Corresponds to the HTTP Location header and contains a URL representing the actual location of the data, including the destination URL in case of redirections.
HttpHeader.LastModified 3 Corresponds to the HTTP Last-Modified header and contains a DateTime object representing the last modification date of the contents.
HttpHeader.ContentDisposition 6 Corresponds to the HTTP Content-Disposition header and contains a string containing the disposition type (for instance, attachment) and a parameter (for instance, filename).
HttpHeader.UserAgent 7 The User-Agent header sent by HTTP clients.
HttpHeader.Server 8 The Server header received by HTTP clients.
HttpHeader.IfModifiedSince 9 Corresponds to the HTTP If-Modified-Since header and contains a DateTime object. It is usually added to a HttpRequest object. The server shall send a 304 (Not Modified) response if the resource has not changed since this time.
HttpHeader.ETag 10 Corresponds to the HTTP ETag header and contains a QString representing the last modification state of the contents.
HttpHeader.IfMatch 11 Corresponds to the HTTP If-Match header and contains a StringList. It is usually added to a HttpRequest object. The server shall send a 412 (Precondition Failed) response if the resource does not match.
HttpHeader.IfNoneMatch 12 Corresponds to the HTTP If-None-Match header and contains a StringList. It is usually added to a HttpRequest object. The server shall send a 304 (Not Modified) response if the resource does match.
HttpHeader.Custom 13 Corresponds to a custem HTTP header. The content of the customHeader property is used for the HTTP header name field.

Example

import InCore.Foundation 2.5
import InCore.Http 2.5

Application {

    id: app

    MeasurementGroup {
        id: sensorGroup
        Measurement {
            id: temperatureSensor
            unit: "°C"
            data: 20 + Math.random() * 10
        }
        Measurement {
            id: pressureSensor
            unit: "Pa"
            data: 100000 + Math.random() * 10000
            siPrefix: Pressure.Kilo
        }
    }

    Serializer {
        id: sensorSerializer
        source: sensorGroup
    }

    HttpRequest {
        id: headerTest
        url: "https://httpbin.org/post"
        content: HttpContent {
            type: HttpContent.Json
            data: sensorSerializer.data
        }

        HttpHeader {
            type: HttpHeader.UserAgent
            data: "InCore HTTP Client"
        }

        HttpHeader {
            customHeader: "InCore-DeviceId"
            data: system.deviceId
        }

        response.autoDetectDataTypeFromContentType: false
        onResponseReceived: console.log("Response for POST:", response.statusCode, response.content.data)
    }

    onCompleted: {
        headerTest.post();
    }
}