code: @Override
      public void sendRequestHeaders() throws IOException, MessageSentException {
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, "sendRequestHeaders(sync)");
          }
          if (headersSent()) {
              throw new MessageSentException("Headers already sent");
          }
  
          setPartialBody(true);
          getLink().setAllowReconnect(true);
          try {
              sendHeaders(getRequestImpl());
          } catch (IOException e) {
              // no FFDC required
              reConnect(e);
          }
          // check to see if we need to read the response now
          if (shouldReadResponseImmediately()) {
              startResponseReadSync();
          }
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, "sendRequestHeaders(sync)");
          }
      }
docs: Send the headers for the outgoing request synchronously.
  
  @throws IOException
  -- if a socket error occurs
  @throws MessageSentException
  -- if the headers have already been sent