আপনি কীভাবে সিআরএল দিয়ে পোষ্ট ডেটা প্রদর্শন করবেন?


139

উদাহরণস্বরূপ, -v আর্গুমেন্ট সহ একটি ওয়েব সার্ভারে পোস্ট করা:

curl -v http://testserver.com/post -d "firstname=john&lastname=doe"

এবং আউটপুট

> POST /post HTTP/1.1
> User-Agent: curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.19.7 OpenSSL/0.9.8l zlib/1.2.3
> Host: testserver.com
> Accept: */*
> Content-Length: 28
> Content-Type: application/x-www-form-urlencoded
> 
< HTTP/1.1 200 OK
(etc)

আমি যে ডেটা পোস্ট করেছি তার কোনও উল্লেখ নেই।

আউটপুটে "প্রথম নাম = জন এবং শেষ নাম = ডো" স্ট্রিংটি প্রদর্শনের জন্য কি সিআরএল-এ কোনও বিকল্প আছে?

দ্রষ্টব্য: স্পষ্টতই আমি চাইছি স্ট্রিংটি আমি সম্পাদিত কমান্ডের মধ্যে রয়েছে তবে এখানে আরও কয়েকটি পোস্ট অপশন রয়েছে যেমন - ফার্ম এবং --ডাটা-এসসিআই ইত্যাদি I'd আমি সার্ভারে কাঁচা তথ্য প্রেরণ করা দেখতে চাই।


1
আপনি সার্ভারে প্রেরণ করা প্রকৃত তথ্য ক্যাপচার করতে tcpdump চালাতে পারেন। বা ওয়্যারশার্ক (আরও ভাল) যদি আপনার কাছে থাকে।
— কিথ

আমি নিশ্চিত আপনি পারবেন না। অস্পষ্টতা দ্বারা সুরক্ষার এটি কি উদাহরণ? - stackoverflow.com/questions/198462/...
— slotishtype

উত্তর:


175

tcpdumpব্যবহার না করেই আমার কাছে সবচেয়ে কাছেরটি হ'ল --trace-asciiবিকল্পটি ব্যবহার করা :

~ curl http://w3.org/ -d "hello=there" --trace-ascii /dev/stdout
== Info: About to connect() to w3.org port 80 (#0)
== Info:   Trying 128.30.52.45... == Info: connected
== Info: Connected to w3.org (128.30.52.45) port 80 (#0)
=> Send header, 210 bytes (0xd2)
0000: POST / HTTP/1.1
0011: User-Agent: curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.1
0051: 9.7 OpenSSL/0.9.8l zlib/1.2.3
0070: Host: w3.org
007e: Accept: */*
008b: Content-Length: 11
009f: Content-Type: application/x-www-form-urlencoded
00d0: 
=> Send data, 11 bytes (0xb)
0000: hello=there

দুর্ভাগ্যক্রমে, আপনি পোস্ট করার সময় এটি কাজ করে না multipart/form-data:

~ curl http://w3.org/ -F hello=there -F testing=123 --trace-ascii /dev/stdout
== Info: About to connect() to w3.org port 80 (#0)
== Info:   Trying 128.30.52.45... == Info: connected
== Info: Connected to w3.org (128.30.52.45) port 80 (#0)
=> Send header, 270 bytes (0x10e)
0000: POST / HTTP/1.1
0011: User-Agent: curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.1
0051: 9.7 OpenSSL/0.9.8l zlib/1.2.3
0070: Host: w3.org
007e: Accept: */*
008b: Content-Length: 244
00a0: Expect: 100-continue
00b6: Content-Type: multipart/form-data; boundary=--------------------
00f6: --------19319e4d1b79
010c: 
<= Recv header, 32 bytes (0x20)
0000: HTTP/1.1 301 Moved Permanently

4
আমি জানি এটি আপনার নিজের উত্তর, তবে আমি মনে করি আপনি এটি সঠিক উত্তর হিসাবে গ্রহণ করতে পারেন। এটি যাইহোক এটি আমার জন্য সমাধান করেছে, ধন্যবাদ :-)
— ড্যারেন কুক

4
যেকোনটি সরান -vবা --verboseতারা ট্রেস নির্দেশকে ওভাররাইড করে।
— অ্যালিকেলজিন-কিলাকা

2
@ অগাস্টিনরিডঞ্জার এটি https এর সাথে দুর্দান্ত কাজ করে। আমি কেবল এটি চেষ্টা করে দেখেছি পে-লোড। ডেটা এনক্রিপ্ট করা হয়েছে তবে যেহেতু আপনি সংযোগের শেষ পয়েন্ট, তাই আপনার কাছে সমস্ত ডেটা উপলব্ধ রয়েছে এবং তাই কার্ল এটি দেখতে পারে।
— Gak

2
ব্যবহার করা --trace-asciiউপর OS X এর 10.8.5 মাউন্টেন লায়ন আমার জন্য কাজ করেন। আমি দুটি ছবি এবং একটি জসন বডি সহ একটি মাল্টিপার্ট ফর্ম সত্তা আপলোড করেছি এবং প্রত্যাশার মতো সবকিছুই কাজ করেছে
— সীমানা

4
পরিবর্তে --trace-ascii /dev/stdoutআপনি --trace-ascii -(ড্যাশ) করতে পারেন
— আদম মিশালিক

27

অথবা আপনি https://httpbin.org/ দিয়ে পরীক্ষা করতে পারেন

$ curl https://httpbin.org/post -d "firstname=john&lastname=doe"
{
  "args": {}, 
  "data": "", 
  "files": {}, 
  "form": {
    "firstname": "john", 
    "lastname": "doe"
  }, 
  "headers": {
    "Accept": "*/*", 
    "Content-Length": "27", 
    "Content-Type": "application/x-www-form-urlencoded", 
    "Host": "httpbin.org", 
    "User-Agent": "curl/7.43.0"
  }, 
  "json": null, 
  "origin": "78.228.163.126", 
  "url": "https://httpbin.org/post"
}

12

নেটক্যাট বিকল্প যুক্ত করতে চান

#!/bin/bash
nc -l 8080 &

curl "http://localhost:8080" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
--data @<(cat <<EOF
{
  "me": "$USER",
  "something": $(date +%s)
}
EOF
)

9

আপনি চার্লস এবং ব্যবহার করতে পারে curl --proxy localhost:8888। Simples!


4
না, এটি https এর সাথে কাজ করে না। গৃহীত উত্তরটি সূক্ষ্ম এবং সহজ।
— আকোস্টাডিনভ

httpsপ্রশ্নে কোনও প্রয়োজন ছিল না: পি
— ডোরি

@ ক্যাস্পারহার্মার মেনে নেওয়া উত্তর নিয়ে আপনার সমস্যা কী? আপনার যদি আরও প্রয়োজন হয়, টিসিপিডাম্প ডিল করে।
— গেভুরে

এই ঘটেছে 3 বছর আগে। আমি মনে করতে পারছি না.
— ক্যাস্পার হারমার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.