title: How would I use an HTTP proxy when using a custom DialTLS Function in the transport
body: <p>I'm trying to use a custom DialTLS Function in the http.Transport whilst using a HTTP proxy at the same time.</p>
  <p>This is what I tried so far but whenever I configure the HTTP proxy it doesn't use the custom DialTLS Function :</p>
  <pre><code>    tr, err := NewTransport(&quot;771,4865-4866-4867-49196-49195-49188-49187-49162-49161-52393-49200-49199-49192-49191-49172-49171-52392-157-156-61-60-53-47-49160-49170-10,65281-0-23-13-5-18-16-11-51-45-43-10-21,29-23-24-25,0&quot;)
      if err != nil {
          print(err)
      }
      tr.Proxy = http.ProxyURL(proxyURL)
      tr.DisableKeepAlives = true
      httpclient := &amp;http.Client{Transport: tr, Timeout: 2 * time.Second}
      proxyURL, err := url.Parse(fmt.Sprintf(&quot;http://%s&quot;, &quot;127.0.0.1:80&quot;))
      if err != nil {
          return errors.New(&quot;invalid proxy&quot;)
      }
  </code></pre>
  <p>I have looked into the docs for the http.Transport and I found nothing that can help. Incase this is also required this is the custom DialTLS function I'm using:</p>
  <pre><code>    dialtls := func(network, addr string) (net.Conn, error) {
          dialConn, err := net.Dial(network, addr)
          if err != nil {
              return nil, err
          }
  
          config.ServerName = strings.Split(addr, &quot;:&quot;)[0]
  
          uTLSConn := tls.UClient(dialConn, config, tls.HelloCustom)
          if err := uTLSConn.ApplyPreset(spec); err != nil {
              return nil, err
          }
          if err := uTLSConn.Handshake(); err != nil {
              return nil, err
          }
          return uTLSConn, nil
      }
  </code></pre>
  <p>I'm trying to change the ja3 fingerprint a.k.a tls config. If anyone knows how I could achieve this please let me know</p>