Optionalquery: QueryParamsGET a feed path and parse the RSS reply.
The response Content-Type does not decide whether the body is a feed (the portal
serves it as text/xml, but we sniff the body rather than trust the type); only its
charset is used, to decode the body (see decodeXml). Two
failure modes are surfaced as a typed LebensmittelwarnungParseError with a
plain-language message rather than a cryptic parse failure:
Optionalquery: QueryParamsbuildUrl without the base URL's userinfo: the base that relative links in the
feed (image srcs of an item without a <link>) are resolved against, so a password in
the base URL can never end up in a warning's imageUrls.
Perform a GET with Accept negotiation and transient-error retries. Redirects are NOT followed — a 3xx surfaces as an error (the canonical host answers the feed directly).
Optionalquery: QueryParams
Build a fully-qualified URL from a path and optional query parameters.