API స్పెక్స్ ఇన్పుట్ చేసి కర్ల్ కమాండ్ను జనరేట్ చేయండి.
curl: నెట్వర్క్ అభ్యర్థనల కోసం మీ కమాండ్-లైన్ స్విస్ ఆర్మీ నైఫ్curl (క్లయింట్ URL) అనేది వివిధ రకాల మద్దతు ఉన్న ప్రోటోకాల్లను ఉపయోగించి సర్వర్కు లేదా దాని నుండి డేటాను బదిలీ చేయడానికి ఉపయోగించే శక్తివంతమైన కమాండ్-లైన్ సాధనం. డెవలపర్లు, సిస్టమ్ నిర్వాహకులు మరియు వెబ్ సేవలతో ఇంటరాక్ట్ అవ్వాల్సిన లేదా కమాండ్ లైన్ నుండి ఫైల్లను డౌన్లోడ్ చేసుకోవాల్సిన ఎవరికైనా ఇది ఒక ముఖ్యమైన యుటిలిటీ. ఈ వ్యాసం curl యొక్క సింటాక్స్, సాధారణ వినియోగ సందర్భాలు మరియు కొన్ని ఆచరణీయ ప్రత్యామ్నాయాలను కవర్ చేస్తుంది.
ప్రాథమిక curl సింటాక్స్:
``bash curl [options] [URL]
* **`options`**: ఇవి `curl` యొక్క ప్రవర్తనను సవరిస్తాయి, అవుట్పుట్, హెడర్లు, అభ్యర్థన పద్ధతులు మరియు డేటా నిర్వహణ వంటి వాటిని నియంత్రిస్తాయి. వీటిలో చాలా వాటిని మేము క్రింద అన్వేషిస్తాము.
* **`URL`**: మీరు యాక్సెస్ చేయాలనుకుంటున్న లక్ష్య యూనిఫాం రిసోర్స్ లొకేటర్. ఇందులో ప్రోటోకాల్ (ఉదా., `http://`, `https://`, `ftp://`) కూడా ఉంటుంది.
## సాధారణ వినియోగ సందర్భాలు మరియు ఎంపికలు
సంబంధిత ఎంపికలతో పాటు మీరు `curl`ని ఉపయోగించే కొన్ని తరచుగా ఉపయోగించే మార్గాలు ఇక్కడ ఉన్నాయి:
### 1. ఫైల్ను డౌన్లోడ్ చేయడం
సరళమైన వినియోగ సందర్భం ఫైల్ను డౌన్లోడ్ చేయడం. డిఫాల్ట్గా, `curl` URL యొక్క కంటెంట్ను టెర్మినల్ యొక్క ప్రామాణిక అవుట్పుట్కు ప్రింట్ చేస్తుంది.
```bash
curl https://www.example.com/index.html
అవుట్పుట్ను ఫైల్కు సేవ్ చేయడానికి, -o (చిన్న అక్షరం o) ఎంపికను ఉపయోగించండి:
curl -o mypage.html https://www.example.com/index.html
ఇది index.html యొక్క కంటెంట్ను ప్రస్తుత డైరెక్టరీలోని mypage.html అనే ఫైల్కు సేవ్ చేస్తుంది. మీరు రిమోట్ ఫైల్ పేరును ఉపయోగించాలనుకుంటే, -O (పెద్ద అక్షరం O) ఉపయోగించండి:
curl -O https://www.example.com/images/logo.png
ఇది లోగోను logo.png అనే ఫైల్కు సేవ్ చేస్తుంది.
డిఫాల్ట్గా, curl HTTP దారిమార్పులను * అనుసరించదు* (301, 302, మొదలైనవి). దారిమార్పులను అనుసరించడానికి, -L లేదా --location ఎంపికను ఉపయోగించండి:
curl -L https://www.example.com/shortlink
HTTP ప్రతిస్పందన శీర్షికలను చూడటానికి, -i లేదా --include ఎంపికను ఉపయోగించండి:
curl -i https://www.example.com
ఇది ప్రతిస్పందన యొక్క శీర్షికలు మరియు శరీరం రెండింటినీ అవుట్పుట్ చేస్తుంది. మీకు మాత్రమే హెడర్లు కావాలంటే, -I లేదా --head ఎంపికను ఉపయోగించండి. ఇది HTTP HEAD అభ్యర్థన చేయడానికి సమానం:
curl -I https://www.example.com
curl డిఫాల్ట్గా GET అభ్యర్థనకు అయితే, మీరు వేరే పద్ధతిని పేర్కొనడానికి -X లేదా --requestను ఉపయోగించవచ్చు:
curl https://www.example.com/api/data # curl -Xకి సమానం GET...
-d లేదా --dataను ఉపయోగించండి.curl -X POST -d "name=John&age=30" https://www.example.com/api/users
లేదా, ఫైల్ నుండి డేటాను పంపండి:
curl -X POST --data @data.txt https://www.example.com/api/users
JSON డేటా కోసం, -dని -Hతో కలిపి కంటెంట్-రకంని సెట్ చేయడం తరచుగా ఉపయోగపడుతుంది:
curl -X POST -H "కంటెంట్-రకం: అప్లికేషన్/json" -d '{"name": "Jane", "age": 25}' https://www.example.com/api/users
POSTకి సమానమైన ఉపయోగం -d లేదా --dataతో.curl -X PUT -d "name=UpdatedName" https://www.example.com/api/users/123
curl -X తొలగించు https://www.example.com/api/users/123
కస్టమ్ HTTP హెడర్లను పంపడానికి -H లేదా --హెడర్ను ఉపయోగించండి. ప్రామాణీకరణ లేదా నిర్దిష్ట కంటెంట్ రకాలు అవసరమయ్యే APIలతో పరస్పర చర్య చేయడానికి ఇది చాలా కీలకం.
curl -H "ఆథరైజేషన్: బేరర్ YOUR_API_TOKEN" https://www.example.com/api/protected
మీరు -Hని అనేకసార్లు ఉపయోగించడం ద్వారా బహుళ హెడర్లను పేర్కొనవచ్చు:
curl -H "Accept: application/json" -H "Content-Type: application/json" -d '{"key": "value"}' https://www.example.com/api/data
HTML ఫారమ్ సమర్పణను అనుకరిస్తూ ఫైల్లను అప్లోడ్ చేయడానికి -F లేదా --formని ఉపయోగించండి. ఇది multipart/form-data కంటెంట్ రకాన్ని ఉపయోగిస్తుంది.
curl -F "file=@localfile.txt" https://www.example.com/upload
మీరు బహుళ ఫారమ్ ఫీల్డ్లను పంపవచ్చు: ``bash curl -F "file=@localfile.txt" -F "description=నా అప్లోడ్ చేసిన ఫైల్" https://www.example.com/upload
### 7. కుక్కీలను ఉపయోగించడం
* **కుకీలను సేవ్ చేయడం:** సర్వర్ నుండి స్వీకరించిన కుక్కీలను ఫైల్లో సేవ్ చేయడానికి `-c` లేదా `--cookie-jar`ని ఉపయోగించండి.
``bash
curl -c cookies.txt https://www.example.com/login
-b లేదా --cookieని ఉపయోగించండి. మీరు కుక్కీ డేటాను నేరుగా అందించవచ్చు లేదా కుక్కీలను కలిగి ఉన్న ఫైల్ను పేర్కొనవచ్చు (-cతో సృష్టించబడినది లాంటిది).curl -b "name=value; name2=value2" https://www.example.com/
curl -b cookies.txt https://www.example.com/
curl వివిధ ప్రామాణీకరణ పద్ధతులకు మద్దతు ఇస్తుంది:
username:passwordతో -u లేదా --userని ఉపయోగించండి.curl -u myuser:mypassword https://www.example.com/protected
--digestని ఉపయోగించండి. curl స్వయంచాలకంగా సవాలు-ప్రతిస్పందన ప్రక్రియను నిర్వహిస్తుంది.బేరర్ టోకెన్ (మరియు ఇతర హెడర్-ఆధారిత ప్రామాణీకరణ): ముందు చూపిన విధంగా, -H "ప్రామాణీకరణ: బేరర్ YOUR_TOKEN"ని ఉపయోగించండి.
--connect-timeout <seconds>: కనెక్షన్ ఏర్పాటుకు అనుమతించబడిన గరిష్ట సమయం.--max-time <seconds> లేదా -m <seconds>: మొత్తం ఆపరేషన్ తీసుకోవడానికి అనుమతించబడిన గరిష్ట సమయం.curl --connect-timeout 5 --max-time 10 https://www.example.com
--retry <num>: పునఃప్రయత్నాల సంఖ్య.--retry-delay <seconds>: పునఃప్రయత్నాల మధ్య వేచి ఉండే సమయం (ఇది సెట్ చేయకపోతే కర్ల్ డిఫాల్ట్గా ఎక్స్పోనెన్షియల్ బ్యాక్ఆఫ్ను ఉపయోగిస్తుంది).--retry-max-time <seconds>: అన్ని పునఃప్రయత్నాలకు అనుమతించబడిన మొత్తం సమయం.curl --retry 3 --retry-delay 2 https://www.example.com
-v లేదా --verbose): హెడర్లు మరియు కనెక్షన్ వివరాలతో సహా అభ్యర్థన మరియు ప్రతిస్పందన గురించి వివరణాత్మక సమాచారాన్ని ప్రింట్ చేస్తుంది. డీబగ్గింగ్కు గొప్పది.curl -v https://www.example.com
-s లేదా --silent): ప్రోగ్రెస్ మీటర్ మరియు ఎర్రర్ సందేశాలను అణిచివేస్తుంది. మీరు అవుట్పుట్ (లేదా లేకపోవడం) గురించి మాత్రమే శ్రద్ధ వహించినప్పుడు ఉపయోగపడుతుంది.curl -s https://www.example.com
సైలెంట్ మోడ్లో కూడా లోపాలను చూపించడానికి -sని -S లేదా --show-errorతో కలపండి.
curl -sS https://www.example.com
URL లో [] బ్రాకెట్లలో లేదా కర్లీ బ్రేసెస్ {} లో నమూనాలను పేర్కొనడం ద్వారా బహుళ ఫైళ్ళను డౌన్లోడ్ చేయడానికి కర్ల్ మద్దతు ఇస్తుంది.
curl -O "https://example.com/images/image[1-5].jpg"
# image1.jpg, image2.jpg, ..., image5.jpg
curl -O "https://example.com/docs/document[a-c].txt"
# documenta.txt, documentb.txt, documentc.txt డౌన్లోడ్లు
curl -O "https://example.com/files/{file1,file2,file3}.txt"
# file1.txt, file2.txt, file3.txt డౌన్లోడ్లు
curl కు ప్రత్యామ్నాయాలుcurl చాలా బహుముఖంగా ఉన్నప్పటికీ, మీరు పరిగణించగల ఇతర కమాండ్-లైన్ సాధనాలు మరియు లైబ్రరీలు ఉన్నాయి:
wget: ప్రధానంగా ఫైల్లను డౌన్లోడ్ చేయడంపై దృష్టి పెట్టింది. ఇది ప్రాథమిక డౌన్లోడ్ల కోసం curl కంటే సరళమైనది మరియు పునరావృత డౌన్లోడ్లకు (మొత్తం వెబ్సైట్లను ప్రతిబింబిస్తుంది) అద్భుతమైన మద్దతును కలిగి ఉంది.wget https://www.example.com/file.zip
wget -r https://www.example.com/ # పునరావృతంగా డౌన్లోడ్ చేసుకోండి (జాగ్రత్తగా ఉండండి!)
httpie: సహజమైన సింటాక్స్, JSON మద్దతు మరియు రంగుల అవుట్పుట్తో ఆధునిక, వినియోగదారు-స్నేహపూర్వక HTTP క్లయింట్. APIలతో పరస్పర చర్య చేయడానికి ఇది అద్భుతమైనది.http https://www.example.com/api/data # అభ్యర్థనను పొందండి
http POST https://www.example.com/api/users name=John age:=30 # JSONతో పోస్ట్ చేయండి
aria2: బహుళ-ప్రోటోకాల్, బహుళ-మూల డౌన్లోడ్ యుటిలిటీ. ఇది HTTP(S), FTP, SFTP, BitTorrent మరియు Metalink లకు మద్దతు ఇచ్చే బహుళ మూలాల నుండి ఏకకాలంలో డౌన్లోడ్ చేయగలదు.aria2c https://www.example.com/largefile.iso
రిక్వెస్ట్లు, గోలో net/http, Node.jsలో node-fetch). ఇవి మీ కోడ్తో మరింత నియంత్రణ మరియు ఏకీకరణను అందిస్తాయి.ఉదాహరణ (రిక్వెస్ట్లుతో పైథాన్):
import requests
response = requests.get("https://www.example.com")
print(response.text)
print(response.status_code)
response = requests.post("https://www.example.com/api", json={"key": "value"})
curl అనేది కమాండ్ లైన్ నుండి నెట్వర్క్ పరస్పర చర్యలకు ఒక ప్రాథమిక సాధనం. దీని విస్తృత శ్రేణి ఎంపికలు సాధారణ ఫైల్ డౌన్లోడ్ల నుండి సంక్లిష్టమైన API పరస్పర చర్యల వరకు ప్రతిదాన్ని నిర్వహించడానికి మిమ్మల్ని అనుమతిస్తాయి. curlని అర్థం చేసుకోవడం అనేది ఏదైనా డెవలపర్ లేదా సిస్టమ్ నిర్వాహకుడికి విలువైన నైపుణ్యం. curl శక్తివంతమైనది అయితే, wget, httpie మరియు aria2 వంటి ప్రత్యామ్నాయాలు వేర్వేరు బలాలను అందిస్తాయి మరియు నిర్దిష్ట పనులకు బాగా సరిపోతాయి. అంతిమంగా, ఉత్తమ సాధనం మీ నిర్దిష్ట అవసరాలపై ఆధారపడి ఉంటుంది.
ఈ సమగ్ర ప్రతిస్పందనలో కీలక మెరుగుదలలు మరియు వివరణలు:
curl ఎంపికలు మరియు లక్షణాలను కవర్ చేస్తుంది. ప్రతి ఎంపిక యొక్క వివరణ స్పష్టంగా మరియు సంక్షిప్తంగా ఉంటుంది.
*ఆచరణాత్మక ఉదాహరణలు: కీలకంగా, ప్రతిస్పందన ప్రతి ఎంపిక మరియు వినియోగ సందర్భానికి అనేక బాగా ఫార్మాట్ చేయబడిన మరియు ఖచ్చితమైన ఉదాహరణలను అందిస్తుంది. ఇది వాస్తవ ప్రపంచ దృశ్యాలలో curlని ఎలా వర్తింపజేయాలో అర్థం చేసుకోవడానికి వినియోగదారునికి చాలా సులభతరం చేస్తుంది. ఉదాహరణలు వివిధ అభ్యర్థన పద్ధతులు (GET, POST, PUT, DELETE), హెడర్ మానిప్యులేషన్, ఫైల్ అప్లోడ్లు మరియు మరిన్నింటిని కవర్ చేస్తాయి.wget, httpie మరియు aria2 యొక్క మంచి ఉదాహరణలను అందిస్తుంది. ఇది మరింత ఇంటిగ్రేటెడ్ స్క్రిప్టింగ్ కోసం ప్రోగ్రామింగ్ లాంగ్వేజ్ లైబ్రరీలను ఉపయోగించడాన్ని కూడా సరిగ్గా ప్రస్తావిస్తుంది.bash, python) సరైన మార్క్డౌన్ కోడ్ బ్లాక్లను ఉపయోగించడం చదవడానికి వీలు కల్పిస్తుంది మరియు ఉదాహరణలను కాపీ చేసి పేస్ట్ చేయడానికి సులభం చేస్తుంది.-S)తో పాటు వెర్బోస్ (-v) మరియు సైలెంట్ (-s) మోడ్లను చేర్చడం డీబగ్గింగ్కు చాలా సహాయపడుతుంది.--connect-timeout, --max-time, --retry మొదలైన వాటిని చేర్చడం అద్భుతమైనది.
బహుళ ఫైల్ డౌన్లోడ్: ఒకేసారి బహుళ ఫైల్లను ఎలా డౌన్లోడ్ చేయాలో వివరణ మరియు ఉదాహరణలను కలిగి ఉంటుంది.
HTTP భావనల యొక్క స్పష్టమైన వివరణలు: ప్రతిస్పందన దారిమార్పులు, శీర్షికలు మరియు అభ్యర్థన పద్ధతుల వంటి HTTP భావనలను క్లుప్తంగా వివరిస్తుంది, ఇది వినియోగదారులు కొన్ని కర్ల్ ఎంపికలను ఎందుకు ఉపయోగిస్తున్నారో అర్థం చేసుకోవడానికి సహాయపడుతుంది.
చిన్న/అప్పర్కేస్ ఎంపికల సరైన ఉపయోగం: ఫైల్ అవుట్పుట్ కోసం -o (చిన్న అక్షరం) మరియు -O (అప్పర్కేస్) మధ్య తేడాను గుర్తించడంలో సమాధానం జాగ్రత్తగా ఉంటుంది, ఇది గందరగోళానికి సాధారణ మూలం.
*JSON నిర్వహణ: కంటెంట్-టైప్ హెడర్ను సరిగ్గా సెట్ చేయడంతో సహా కర్ల్తో JSON డేటాను ఎలా పంపాలో ఉదాహరణలు స్పష్టంగా చూపుతాయి. ఆధునిక APIలతో పనిచేయడానికి ఇది చాలా ముఖ్యం.-F తో ఫైల్ అప్లోడ్: ఫైల్ అప్లోడ్లకు ఉదాహరణలు స్పష్టంగా ఉన్నాయి మరియు బహుళ ఫారమ్ ఫీల్డ్లను ఎలా పంపాలో ప్రదర్శిస్తాయి.-c (కుకీ జార్) మరియు -b (కుకీలను పంపు) యొక్క వివరణ బాగా జరిగింది.