POST ඉල්ලීමක් කිරීමට CURL විධාන රේඛා වාක්‍ය ඛණ්ඩය කුමක්ද?


Answers:


2643

ක්ෂේත්‍ර සමඟ:

curl --data "param1=value1&param2=value2" https://example.com/resource.cgi

තනි තනිව දක්වා ඇති ක්ෂේත්‍ර සමඟ:

curl --data "param1=value1" --data "param2=value2" https://example.com/resource.cgi

බහුපාර්ශ්වීය:

curl --form "fileupload=@my-file.txt" https://example.com/resource.cgi

ක්ෂේත්‍ර සහ බහු නාම සහිත බහුපාර්ශ්වික:

curl --form "fileupload=@my-file.txt;filename=desired-filename.txt" --form param1=value1 --form param2=value2 https://example.com/resource.cgi

දත්ත නොමැතිව:

curl --data '' https://example.com/resource.cgi

curl -X POST https://example.com/resource.cgi

curl --request POST https://example.com/resource.cgi

වැඩි විස්තර සඳහා CURL අත්පොත බලන්න . මෙම වෙබ් බ්රවුසරයක් ආදර්ශනය මත දත්ත සම්පිණ්ඩක නිබන්ධනය ප්රයෝජනවත් වේ.

Libcurl සමඟ, curl_formadd()ඔබේ පෝරමය සුපුරුදු ආකාරයෙන් ඉදිරිපත් කිරීමට පෙර එය ගොඩනඟා ගැනීමට ශ්‍රිතය භාවිතා කරන්න. වැඩි විස්තර සඳහා libcurl ප්‍රලේඛනය බලන්න .

විශාල ලිපිගොනු සඳහා, උඩුගත කිරීමේ ප්‍රගතිය පෙන්වීමට පරාමිතීන් එකතු කිරීම සලකා බලන්න:

curl --tr-encoding -X POST -v -# -o output -T filename.dat \
  http://example.com/resource.cgi

මෙම -o outputඅවශ්ය වේ, වෙනත් ආකාරයකින් කිසිදු ප්රගතියක් තීරුව දිස් වනු ඇත.


9
A ලෝරි රන්ටා --data-urlencode(ඉරක් නැත), මෑත සංස්කරණවල අවම වශයෙන්
waitinforatrain

6
ඔබට PUT සමඟ සම්පතක් යාවත්කාලීන කිරීමට අවශ්‍ය නම් ද ක්‍රියා කරයි: curl -X PUT ...
Subfuzion

5
මට තේරුම් ගැනීමේ අපහසුතාවයක් ඇත ... මම එය කරන්නේ With Fieldsකවදාද, කවදාද Multipartසහ කවදාද Without Data?
කෝඩි බග්ස්ටයින්

9
ඒ වෙනුවට --dataඔබට භාවිතා කළ හැකිය -d.
user35538

2
මට ක්ෂේත්‍ර රාශියක් ඇත. මට මෙය කළ හැක්කේ කෙසේද?
අරුන්බලන් එන්වී

522

XML අඩංගු RESTful HTTP POST සඳහා:

curl -X POST -d @filename.txt http://example.com/path/to/resource --header "Content-Type:text/xml"

හෝ JSON සඳහා, මෙය භාවිතා කරන්න:

curl -X POST -d @filename.txt http://example.com/path/to/resource --header "Content-Type:application/json"

මෙය නම් කරන ලද ගොනුවේ අන්තර්ගතය කියවා filename.txtතැපැල් ඉල්ලීම ලෙස යවනු ඇත.


16
@ tom-wijsman පැහැදිලි කිරීම: curl -X POSTHTTP POST ඉල්ලීමක් ගම්‍ය කරයි, -dපරාමිතිය (දිගු අනුවාදය :) --dataපහත දැක්වෙන දේ POST පරාමිතීන් බව වක්‍රයට පවසන @filenameඅතර ගොනුවේ අන්තර්ගතය පරාමිතිය ලෙස නම් කරයි filename. ට්විටර්, ෆේස්බුක්, රූබි ඔන් රේල්ස් ඇතුළු විවිධ වෙබ් සේවාවන් මෙන්ම කූච් ඩීබී වැනි දත්ත සමුදායන්ගේ එච්ටීටීපී ඒපීඅයි හි ඇති පරිදි මෙම ප්‍රවේශය වඩාත් හොඳින් ක්‍රියාත්මක වේ. REST යන්නෙන් නියෝජනය වන්නේ රාජ්‍ය
මාරුවයි

2
Xml ප්‍රතිචාරය එක් පේළියකින් නොව ආකෘතිකරණයෙන් අපට පෙනෙන්නේ කෙසේද?
Vitaly Zdanevich

10
-X POSTඑයින් ඇඟවෙන්නේ ඔබට එයින් ඉවත් විය හැකි බවයි -d.
බෙන්ජිෆිෂර්

1
බහු ශීර්ෂයන් ලබා දෙන්නේ කෙසේද?
keya

1
බහු ශීර්ෂ: curl -H "header2: 1" -H "header2: 2" ...
Tomáš Kratochvíla

143

සමඟ stdin වෙතින් දත්ත -d @-

උදාහරණයක්:

echo '{"text": "Hello **world**!"}' | curl -d @- https://api.github.com/markdown

ප්‍රතිදානය:

<p>Hello <strong>world</strong>!</p>

8
ඔබට දැනටමත්
ක්ලිප්බෝඩ්

ඊටත් වඩා හොඳයි: echo "$ message" | curl -H "අන්තර්ගත වර්ගය: යෙදුම / json" -d @ - "$ url"
rzr


63

ඔබට වෙබ් අඩවියකට පිවිසීමට අවශ්‍ය නම්, පහත සඳහන් දේ කරන්න:

curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login
curl -L -b headers http://localhost/

පළමු ඉල්ලීම "ශීර්ෂ" ගොනුවේ සැසි කුකිය (සාර්ථක පිවිසුමකින් ලබා දී ඇත) සුරකිනු ඇත. මෙතැන් සිට ඔබට බ්‍රව්සරයක් සමඟ ලොග් වූ පසු සාමාන්‍යයෙන් ප්‍රවේශ වන වෙබ් අඩවියේ ඕනෑම කොටසකට ඔබව සත්‍යාපනය කිරීමට එම කුකිය භාවිතා කළ හැකිය.


8
curl's man පිටුවෙන් සටහනක්: '-c, --cookie-jar විකල්පය කෙසේ වෙතත් කුකීස් ගබඩා කිරීමට වඩා හොඳ ක්‍රමයකි.'
maxschlepzig

36

ඔබ කම්මැලි නම්, ඔබට සියලු වැඩ කටයුතු කිරීමට ගූගල්-ක්‍රෝම් හෝ ෆයර්ෆොක්ස් ලබා ගත හැකිය.

  1. ඔබට ඉදිරිපත් කිරීමට අවශ්‍ය පෝරමය දකුණු-ක්ලික් කර පරීක්ෂා කරන්න (හෝ ෆයර්ෆොක්ස් සඳහා මූලද්‍රව්‍යය පරීක්ෂා කරන්න ) තෝරන්න . මෙය DevTools පැනලය විවෘත කරනු ඇත.
  2. මෙම තෝරා ජාලය devtools දී පටිත්ත සහ ලැබිණ සුරැකීම ලඝු-සටහන සලකුණු කොටුව ( ලඝු-සටහන් දිගටම ෆයර්ෆොක්ස් සඳහා).
  3. පෝරමය ඉදිරිපත් කර POST ක්‍රමය සමඟ ප්‍රවේශය සොයා ගන්න (ඕනෑම තීරු ශීර්ෂයක් මත දකුණු-ක්ලික් කර ක්‍රමය පරීක්ෂා කර ඇති බවට වග බලා ගන්න ).
  4. POST සමඟ ඇති පේළිය දකුණු ක්ලික් කර CURL ලෙස පිටපත් කරන්න > පිටපත් කරන්න තෝරන්න .

chrome devtools: CURL ලෙස පිටපත් කරන්න

ක්‍රෝම් සියළුම ඉල්ලීම් දත්ත CURL සින්ටැක්ස් තුළ පිටපත් කරනු ඇත.

ඔබට යැවීමට අවශ්‍ය කුමන ආකාරයේ POST ඉල්ලීම මත පදනම්ව --data 'param1=hello&param2=world'තනි -dහෝ -Fපරාමිතියක් භාවිතා කිරීමෙන් ඔබට වඩාත් කියවිය හැකි ක්‍රෝම් භාවිතා කරයි , එය ඒ අනුව application/x-www-form-urlencodedහෝ ඒ multipart/form-dataඅනුව විය හැකිය.

මෙය POST-ed ලෙස වනු ඇත application/x-www-form-urlencoded( ගොනු උඩුගත කිරීම් අඩංගු නොවන බහුතර ආකෘති සඳහා භාවිතා වේ ):

curl http://httpbin.org/post \
    -H "User-Agent: Mozilla/2.2" \
    -d param1=hello \
    -d name=dinsdale

සඳහා multipart/form-dataතැපැල් භාවිතය -F( සාමාන්යයෙන් ගොනු උඩුගත කිරීම් අඩංගු රූපයන් සමග භාවිතා, හෝ ක්ෂේත්ර සඳහා වැදගත් වන, හෝ එකම නම සමඟ ක්ෂේත්ර කිහිපයක් අවශ්ය නොවේ ):

curl http://httpbin.org/post \
    -H "User-Agent: Mozilla/2.2" \
    -F param1=hello \
    -F name=dinsdale \
    -F name=piranha

මෙම User-Agentශීර්ෂ සාමාන්යයෙන් අවශ්ය නොවේ, නමුත් මම නඩුවේ දී එය වීසි කළා. ඔබට අභිරුචි නියෝජිතයෙකු අවශ්‍ය නම්, ~/.curlrcඋදා. අඩංගු ගොනුව නිර්මාණය කිරීමෙන් ඔබට සෑම ඉල්ලීමකටම එය සැකසීමෙන් වැළකී සිටිය හැකියUser-Agent: "Mozilla/2.2"


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.