$method, 'timeout' => $this->timeout, 'redirection' => 0, 'headers' => $headers, 'user-agent' => 'DomainWarn WordPress '.InsightPayload::AGENT_VERSION, ]; if ($json !== null) { $args['headers']['Content-Type'] = 'application/json'; $args['body'] = (string) wp_json_encode($json); } $response = wp_remote_request($url, $args); if (is_wp_error($response)) { throw new TransportException($response->get_error_message()); } $headers = []; foreach (wp_remote_retrieve_headers($response) as $name => $value) { // mehrfach gesetzte Kopfzeilen kommen als Liste; gebraucht wird hier nur die erste (Location, Content-Type) $headers[strtolower((string) $name)] = is_array($value) ? (string) reset($value) : (string) $value; } return new TransportResponse( (int) wp_remote_retrieve_response_code($response), (string) wp_remote_retrieve_body($response), $headers, ); } }