URL parçalarını ayarla (Set URL parts)
API, uygulamanın CURLU handle içinde tutulan bir URL'nin bireysel parçalarını, tam bir URL'yi ayrıştırdıktan sonra veya böyle bir ayrıştırma yerine ayarlamasına olanak tanır.
rc = curl_url_set(urlp, CURLUPART_HOST, "www.example.com", 0);
rc = curl_url_set(urlp, CURLUPART_SCHEME, "https", 0);
rc = curl_url_set(urlp, CURLUPART_USER, "john", 0);
rc = curl_url_set(urlp, CURLUPART_PASSWORD, "doe", 0);
rc = curl_url_set(urlp, CURLUPART_PORT, "443", 0);
rc = curl_url_set(urlp, CURLUPART_PATH, "/index.html", 0);
rc = curl_url_set(urlp, CURLUPART_QUERY, "name=john", 0);
rc = curl_url_set(urlp, CURLUPART_FRAGMENT, "anchor", 0);
rc = curl_url_set(urlp, CURLUPART_ZONEID, "25", 0);
API her zaman üçüncü argümanda null ile sonlandırılmış bir char * dizesi veya alanı temizlemek için NULL bekler. Port numarasının da bu şekilde bir dize olarak sağlandığını unutmayın.
Kullanıcı dördüncü argümanda CURLU_URLENCODE bayrağıyla istemedikçe, ayarlanan parçalar URL kodlamasına tabi tutulmaz.
Parçaları güncelle
Bireysel bir parçayı ayarlayarak, örneğin önce tam bir URL ayarlayabilir, ardından o URL'nin tek bir bileşenini güncelleyebilir ve ardından o URL'nin güncellenmiş sürümünü çıkarabilirsiniz.
Örneğin, şöyle bir URL'miz olduğunu varsayalım
const char *url="http://joe:7Hbz@example.com:8080/images?id=5445#footer";
ve o URL'deki ana bilgisayarı bunun yerine example.net olacak şekilde değiştirmek istiyoruz, bu şöyle yapılabilir:
CURLU *h = curl_url();
rc = curl_url_set(h, CURLUPART_URL, url, 0);
Sonra ana bilgisayar adı parçasını değiştirin:
rc = curl_url_set(h, CURLUPART_HOST, "example.net", 0);
ve bu artık şu URL'yi tutar:
http://joe:7Hbz@example.net:8080/images?id=5445#footer
Daha sonra devam edip yol parçasını /foo olarak şöyle değiştirirseniz:
rc = curl_url_set(h, CURLUPART_PATH, "/foo", 0);
ve URL handle artık şu URL'yi tutar:
http://joe:7Hbz@example.net:8080/foo?id=5445#footer
vb...