## SoupContentSniffer SoupContentSniffer — Content sniffing for SoupSession |

## Synopsis

    #include <libsoup/soup.h>

                        SoupContentSniffer;
    SoupContentSniffer * soup_content_sniffer_new           (void);
    char *              soup_content_sniffer_sniff          (SoupContentSniffer *sniffer,
                                                             SoupMessage *msg,
                                                             SoupBuffer *buffer,
                                                             GHashTable **params);

## Object Hierarchy

      GObject
       +----SoupContentSniffer

## Implemented Interfaces

SoupContentSniffer implements SoupSessionFeature.

## Description

A SoupContentSniffer tries to detect the actual content type of the files that are being downloaded by looking at some of the data before the SoupMessage emits its "got-headers" signal. SoupContentSniffer implements SoupSessionFeature, so you can add content sniffing to a session with `soup_session_add_feature()` or `soup_session_add_feature_by_type()`.

## Details

### SoupContentSniffer

    typedef struct _SoupContentSniffer SoupContentSniffer;

### soup_content_sniffer_new ()

    SoupContentSniffer * soup_content_sniffer_new           (void);

Creates a new SoupContentSniffer.

Returns : | a new SoupContentSniffer

Since 2.27.3

### soup_content_sniffer_sniff ()

    char *              soup_content_sniffer_sniff          (SoupContentSniffer *sniffer,
                                                             SoupMessage *msg,
                                                             SoupBuffer *buffer,
                                                             GHashTable **params);

Sniffs `buffer` to determine its Content-Type. The result may also be influenced by the Content-Type declared in `msg`'s response headers.

`sniffer` : | a SoupContentSniffer
`msg` : | the message to sniff
`buffer` : | a buffer containing the start of `msg`'s response body
`params` : | return location for Content-Type parameters (eg, "charset"), or `NULL`. [element-type utf8 utf8][out][transfer full][allow-none]
Returns : | the sniffed Content-Type of `buffer`; this will never be `NULL`, but may be "application/octet-stream".