Моделюйте конкретний CURL у PostMan


154

Я використовую Postman для тестування деяких запитів на Curl на сервер API. Розробники API дали нам команду curl, але я не можу надіслати її від листоноші. Як зробити такий запит у листоноші?

curl -X POST "https://api-server.com/API/index.php/member/signin" -d "{"description":"","phone":"","lastname":"","app_version":"2.6.2","firstname":"","password":"my_pass","city":"","apikey":"213","lang":"fr","platform":"1","email":"email@example.com","pseudo":"example"}"

--0xKhTmLbOuNdArY
Content-Disposition: form-data; name="userfile"; filename="profil.jpg"
Content-Type: image/jpeg
Content-Transfer-Encoding: binary

<ffd8ffe0 00104a46 49460001 01010048 ... a00fffd9>

—0xKhTmLbOuNdArY—

Відповіді:


423

Більш простим підходом було б:

  1. Відкрити POSTMAN
  2. Клацніть на вкладці "імпорт" у лівій верхній частині.
  3. Виберіть параметр "Сирий текст" та вставте команду cURL.
  4. Натисніть на імпорт, і ви отримаєте команду у вашому будівельнику "Листоноша"
  5. Клацніть Надіслати, щоб опублікувати команду

Сподіваюся, це допомагає!


4
Я ніколи не знав, що ти можеш це зробити, поки не побачив цю публікацію. Дякую!
austinthedeveloper

3
Це саме те, що я хотів. Дякую!
Танець Джошуа

3
Я спробував це, і це спрацювало частково. Це мій запит на згортання: curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d ' {"customer_id":"812122", "event":"add_to_cart", "email": "abc@def.com", }' -u 9f4d7f5445e7: https://api.myapp.com/api/event після імпорту тіла імпортувались правильно, заголовки та URL також імпортувалися. Лише ключ api 9f4d7f5445e7, який знаходиться -u 9f4d7f5445e7: https://api.myapp.com/api/v1/eventу запиті на згортання, не імпортував, або його може пропустити. Будь-яка ідея, як її вирішити?
Ріто

1
Я думаю, що імпортувати curl cmd myselft. Але мені потрібно було колись дізнатись, де знаходиться сторінка з імпортованим завитком, схоже, що нічого не відбувається при імпорті файлу / cmd. Потім вам потрібно натиснути кнопку «код» у верхньому правому куті (під кнопкою збереження). Тоді ви побачите, завантажений чи ні ваш завиток.
Чжихонг

Цей підхід не використовував облікові дані, які я зашифрував у ньому, тому довелося додавати їх вручну, використовуючи Auth> Basic Auth, всередині фактичного запиту, використовуючи мишу та спадні меню. Варто зазначити, що я думаю, оскільки поведінка програмного забезпечення така, що, здається, він прийняв та використовував кредити: все, що ви отримуєте, - це "будь ласка, надайте дійсні облікові дані", а не "будь ласка, надайте якісь дані".
olisteadman

12
In addition to the answer
1. Open POSTMAN
2. Click on "import" tab on the upper left side.
3. Select the Raw Text option and paste your cURL command.
4. Hit import and you will have the command in your Postman builder!
5. If -u admin:admin are not imported, just go to the Authorization 
   tab, select Basic Auth -> enter the user name eg admin and password eg admin.
This will automatically generate Authorization header based on Base64 encoder

5

1) Помістіть https://api-server.com/API/index.php/member/signinу поле введення URL-адреси та виберіть POSTзі спадного меню

2) На вкладці Заголовки введіть:

Тип вмісту: image / jpeg

Передача вмісту-кодування: двійкове

3) На вкладці Body виберіть rawперемикач і напишіть:

{"description":"","phone":"","lastname":"","app_version":"2.6.2","firstname":"","password":"my_pass","city":"","apikey":"213","lang":"fr","platform":"1","email":"email@example.com","pseudo":"example"}

виберіть form-dataперемикач і напишіть:

key = name Значення = userfile Виберіть Text ключ = ім'я файлу Виберіть Fileі завантажте свій профіль.jpg


5

Я спробував підхід, згаданий Онкааром Сінгхом,

  1. Відкрити POSTMAN
  2. Клацніть на вкладці "імпорт" у лівій верхній частині.
  3. Виберіть параметр "Сирий текст" та вставте команду cURL.
  4. Натисніть на імпорт, і ви отримаєте команду у вашому будівельнику "Листоноша"

Але проблема полягає в тому, що він не спрацював для Apis, який вимагає авторизації.

Це був мій запит на завивку:

curl -v -H "Accept: application/json" -H "Content-type:
application/json" -X POST -d ' 
{"customer_id":"812122", "event":"add_to_cart", "email": "abc@def.com", }' 
-u 9f4d7f5445e7: https://api.myapp.com/api/event

Після імпортування тіла було імпортовано правильно, заголовки та URL також імпортували. Тільки ключ api 9f4d7f5445e7, який є

-u 9f4d7f5445e7: https://api.myapp.com/api/v1/event 

у запиті curl не імпортували.

Як я це вирішив, -u в основному використовується для Авторизації. Отже, використовуючи його в Postman, вам потрібно взяти ключ API (який є 9f4d7f5445e7в цьому випадку) і зробити Base64 Encode. Після кодування він поверне значення OWY0ZDdmNTQ0NWU3. Потім додайте новий заголовок, було б ім'ям Authorizationключа та значенням ключа Basic OWY0ZDdmNTQ0NWU3. Після внесення цих змін запит працював для мене.

Доступні онлайн-кодери Base64, який я використав - http://www.url-encode-decode.com/base64-encode-decode/

Сподіваюся, це допомагає !!!


на вкладці авторизації листоноші просто виберіть Basic Auth, і він створить заголовок Base64
electricbah

2

інколи, коли ви копіюєте CURL, він містить - стислий. Видаліть його під час імпорту-> Вставити сирий текст -> натисніть на імпорт. Це також вирішить проблему, якщо ви отримуєте синтаксичну помилку в листоноші під час імпорту будь-якого CURL.

Як правило, коли люди копіюють CURL з будь-яких проксі-інструментів, таких як Чарльз, це трапляється.


0

Як згадується в декількох відповідях вище, ви можете імпортувати курсор у POSTMAN безпосередньо. Але якщо URL-адреса дозволена (або не працює з якихось причин) недобросовісно, ​​ви можете вручну додати всі точки даних як JSON у вашому корпусі листоноші. візьміть URL-адресу API з CURL.

для частини Авторизація - просто додайте ключ авторизації та базовий 64 закодований рядок як значення.

приклад:

curl -u rzp_test_26ccbdbfe0e84b:69b2e24411e384f91213f22a \ https://api.razorpay.com/v1/orders -X POST \ --data "amount=50000" \ --data "currency=INR" \ --data "receipt=Receipt #20" \ --data "payment_capture=1" https://api.razorpay.com/v1/orders

{ "amount": "5000", "currency": "INR", "receipt": "Receipt #20", "payment_capture": "1" }

Заголовки: Authorization:Basic cnpwX3Rlc3RfWEk5QW5TU0N3RlhjZ0Y6dURjVThLZ3JiQVVnZ3JNS***U056V25J де "cnpwX3Rlc3RfWEk5QW5TU0N3RlhjZ0Y6dURjVThLZ3JiQVVnZ3JNS *** U056V25J" - це закодована форма "rzp_test_26ccbdbfe0e84b: 69b222e2441111111111e114111111e"

невелика порада: для кодування ви можете легко перейти до своєї хромованої консолі (клацніть правою кнопкою миші => перевірити) та введіть: btoa("string you want to encode")(або використовувати базову авторизацію листоноші)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.