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

Overview

Properties

Methods

Signals

Enumerations

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();
    }
}