CURLOPT_PROXYTYPE(3)

CURLOPT_PROXYTYPE3

Proxy protocol type

Usage

#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXYTYPE, long type);

Overview

Pass one of the values below to set the type of the proxy.

CURLPROXY_HTTP

HTTP Proxy. Default.

CURLPROXY_HTTPS

HTTPS Proxy using HTTP/1. (Added in 7.52.0 for OpenSSL and GnuTLS. Since 7.87.0, it also works for BearSSL, mbedTLS, rustls, Schannel, Secure Transport and wolfSSL.)

CURLPROXY_HTTPS2

HTTPS Proxy and attempt to speak HTTP/2 over it. (Added in 8.1.0)

CURLPROXY_HTTP_1_0

HTTP 1.0 Proxy. This is similar to CURLPROXY_HTTP except it uses HTTP/1.0 for any CONNECT tunneling. It does not change the HTTP version of the actual HTTP requests, controlled by CURLOPT_HTTP_VERSION(3).

CURLPROXY_SOCKS4

SOCKS4 Proxy.

CURLPROXY_SOCKS4A

SOCKS4a Proxy. Proxy resolves URL hostname.

CURLPROXY_SOCKS5

SOCKS5 Proxy.

CURLPROXY_SOCKS5_HOSTNAME

SOCKS5 Proxy. Proxy resolves URL hostname.

Often it is more convenient to specify the proxy type with the scheme part of the CURLOPT_PROXY(3) string.

Default

CURLPROXY_HTTP

Protocols

Most

Examples

int main(void)
{
  CURL *curl = curl_easy_init();
  if(curl) {
    CURLcode ret;
    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
    curl_easy_setopt(curl, CURLOPT_PROXY, "local.example.com:1080");
    /* set the proxy type */
    curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
    ret = curl_easy_perform(curl);
    curl_easy_cleanup(curl);
  }
}

Return value

Returns CURLE_OK

Releases

79 releases since OS X 10.10; the text changed 13 times.

  1. 10.10–10.11.6
  2. 10.12–10.12.5
  3. 10.12.6–10.14.6
  4. 10.15–11.5
  5. 12.0.1–12.2
  6. 12.3–12.5
  7. 13.0
  8. 13.1
  9. 13.2
  10. 13.3
  11. 13.4
  12. 13.5–14.1
  13. 14.2–14.4
  14. 14.5–26.5

Availability

Always

From curl 166.0.0.0.1 in macOS 26.5. Parsed by carta from the page's man source.