1---
2c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
3SPDX-License-Identifier: curl
4Title: CURLOPT_PROXYUSERPWD
5Section: 3
6Source: libcurl
7See-also:
8  - CURLOPT_PROXY (3)
9  - CURLOPT_PROXYPASSWORD (3)
10  - CURLOPT_PROXYTYPE (3)
11  - CURLOPT_PROXYUSERNAME (3)
12Protocol:
13  - All
14Added-in: 7.1
15---
16
17# NAME
18
19CURLOPT_PROXYUSERPWD - username and password to use for proxy authentication
20
21# SYNOPSIS
22
23~~~c
24#include <curl/curl.h>
25
26CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXYUSERPWD, char *userpwd);
27~~~
28
29# DESCRIPTION
30
31Pass a char pointer as parameter, which should be [username]:[password] to use
32for the connection to the HTTP proxy. Both the name and the password are URL
33decoded before used, so to include for example a colon in the username you
34should encode it as %3A. (This is different to how CURLOPT_USERPWD(3) is
35used - beware.)
36
37Use CURLOPT_PROXYAUTH(3) to specify the authentication method.
38
39The application does not have to keep the string around after setting this
40option.
41
42Using this option multiple times makes the last set string override the
43previous ones. Set it to NULL to disable its use again.
44
45# DEFAULT
46
47NULL
48
49# %PROTOCOLS%
50
51# EXAMPLE
52
53~~~c
54int main(void)
55{
56  CURL *curl = curl_easy_init();
57  if(curl) {
58    CURLcode res;
59    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/foo.bin");
60    curl_easy_setopt(curl, CURLOPT_PROXY, "http://localhost:8080");
61    curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, "clark%20kent:superman");
62    res = curl_easy_perform(curl);
63    curl_easy_cleanup(curl);
64  }
65}
66~~~
67
68# %AVAILABILITY%
69
70# RETURN VALUE
71
72Returns CURLE_OK if proxies are supported, CURLE_UNKNOWN_OPTION if not, or
73CURLE_OUT_OF_MEMORY if there was insufficient heap space.
74