libcurl so eto proxy pọ mọ easy handle ti n ṣe gbigbe naa. Fi adirẹsi alarinrin naa sori handle yẹn, ki o si fi CURLOPT_URL silẹ gẹgẹbi URL ibi-afẹde.

Apakan ti o tẹle ro pe libcurl ti bẹrẹ ati pe handle jẹ easy handle to wulo:

char error[CURL_ERROR_SIZE] = {0};
CURLcode result;

result = curl_easy_setopt(handle, CURLOPT_ERRORBUFFER, error);
if (result == CURLE_OK)
    result = curl_easy_setopt(handle, CURLOPT_URL,
                              "https://example.com/");
if (result == CURLE_OK)
    result = curl_easy_setopt(handle, CURLOPT_PROXY,
                              "http://proxy.example:8080");
if (result == CURLE_OK)
    result = curl_easy_perform(handle);

if (result != CURLE_OK)
    fprintf(stderr, "%s\n", error[0] ? error
                                  : curl_easy_strerror(result));

Jẹ ki buffer aṣiṣe wa laaye niwọn igba ti handle ba tọka si i. Ki o to kuro ni agbegbe rẹ, nu handle naa tabi rọpo tabi nu atọka CURLOPT_ERRORBUFFER rẹ. Orukọ host proxy jẹ aaye-ipamọ; oludije ti a ko fi idi rẹ mulẹ lati akojọ proxy HTTP le pese adirẹsi fun idanwo aaye gbangba yii. Lo scheme ati port gidi rẹ, ki o si ṣayẹwo boya o gba tunnel HTTPS laaye.

Ibi-afẹde HTTPS le lo proxy HTTP. libcurl n ṣakoso tunnel fun gbigbe HTTPS yẹn. http:// ninu option proxy ṣe apejuwe asopọ si alarinrin. Yi pada si https:// nikan fun opin proxy ti o gba TLS gangan ati build libcurl ti o ṣe atilẹyin rẹ.

Jẹ ki ọna ti o munadoko jẹ mimọ

Option proxy kedere bori eto ayika proxy ti o baamu. Yiyọ kuro jẹ ipinnu lọtọ: no_proxy ti a jogun le tun yọ ibi-afẹde kuro. Ti handle yii ba ni lati lo proxy ti a yan fun gbogbo ibi-afẹde ti a fun ni, ṣeto CURLOPT_NOPROXY gẹgẹbi okun ofo gẹgẹbi apakan ti eto imulo yẹn.

Ni idakeji, fifi CURLOPT_PROXY si okun ofo n pa lilo proxy kuro ni gbangba. Fifun si NULL yọ ipinfunni kedere kuro ki o tun gba ihuwasi ti o da lori ayika laaye. Awọn iye meji yẹn n sin awọn idi oriṣiriṣi.

Ori-ọrọ kan pato si ibi-afẹde bii Content-Type: text/xml ko yan proxy naa. Fi kun nikan nigbati ara ibeere gidi ati API ibi-afẹde naa nilo iru media yẹn.

Ka abajade HTTP pẹlu

curl_easy_perform ti o ṣaṣeyọri ko tumọ si pe oju-iwe naa da ipo HTTP aṣeyọri pada. Ka CURLINFO_RESPONSE_CODE ki o si lo itọju ipo ti ohun elo naa. Idahun CONNECT ti proxy ni iye tirẹ, CURLINFO_HTTP_CONNECTCODE; ijusile tunnel ṣaaju eyikeyi idahun oju-iwe.

CURLOPT_FAILONERROR le ṣe itọju ọpọlọpọ awọn aṣiṣe HTTP bi ikuna, ṣugbọn iwe rẹ sọ awọn imukuro ijẹrisi. Pa ipenija 407 ti proxy mọ soto si ipo ibi-afẹde.

Àwọn àpilẹ̀kọ tó jọra