WCF AfterReceiveRequest obtener encabezados

Acabo de empezar a interceptar solicitudes a mi servicio WCF.

Estoy llamando al servicio web con un código java que se ve así (versión corta)

connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("Username", "Testname");

Estoy recibiendo la solicitud pero no puedo obtener / encontrar los encabezados en la solicitud de mensaje. He intentado algo como esto:

public object AfterReceiveRequest(ref System.ServiceModel.Channels.Message request, System.ServiceModel.IClientChannel channel, System.ServiceModel.InstanceContext instanceContext)
{
    int headerIndex = request.Headers.FindHeader("Username", string.Empty);
    var username = request.Headers["Username"]

    return null;
}

Pero siempre termino con -1 o excepciones. ¿Cuál es la forma correcta de hacer esto? ¿Lo estoy haciendo mal en el lado de Java también?

Respuestas a la pregunta(1)

Su respuesta a la pregunta