Я использую 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—
curl
httprequest
postman
Марин Бынзари
источник
источник
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, не был импортирован или, возможно, почтальон пропустил его. Есть идеи, как это решить?источник
1) Поместите
https://api-server.com/API/index.php/member/signin
в поле ввода URL-адреса и выберитеPOST
из раскрывающегося списка2) На вкладке Заголовки введите:
Тип содержимого: изображение / JPEG
Content-Transfer-Encoding: двоичный
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 Value = userfile Выберите
Text
key = filename ВыберитеFile
и загрузите ваш profil.jpgисточник
Я пробовал подход, упомянутый Онкааром Сингхом,
Но проблема в том, что это не сработало для Apis, который требует авторизации.
Это был мой запрос на завиток:
После импорта тело было импортировано правильно, заголовки и URL-адрес также были импортированы. Только ключ api 9f4d7f5445e7, который
в запросе curl не импортировал.
Я решил, что -u в основном используется для авторизации. Поэтому при использовании его в Postman вы должны взять ключ API (который
9f4d7f5445e7
в данном случае есть) и выполнить кодирование Base64. После кодирования он вернет значениеOWY0ZDdmNTQ0NWU3
. Затем добавьте новый заголовок, имя ключа будетAuthorization
и значение ключаBasic OWY0ZDdmNTQ0NWU3
. После внесения этих изменений запрос работал у меня.Доступны онлайн-кодеры Base64, я использовал http://www.url-encode-decode.com/base64-encode-decode/
Надеюсь, это поможет!!!
источник
иногда, когда вы копируете cURL, он содержит --compressed. Удалите его при импорте -> Вставить необработанный текст -> нажмите на импорт. Это также решит проблему, если вы получаете синтаксическую ошибку в почтальоне при импорте любого cURL.
Обычно такое случается, когда люди копируют cURL из любых прокси-инструментов, таких как Charles.
источник
Как упоминалось в нескольких ответах выше, вы можете напрямую импортировать cURL в POSTMAN. Но если URL-адрес авторизован (или не работает по какой-либо причине), я предлагаю вам вручную добавить все точки данных в виде JSON в тело почтальона. возьмите URL-адрес API из cURL.
для части авторизации - просто добавьте ключ авторизации и строку в кодировке base 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: 69b2e24411e384f91213f22a" `небольшой совет: для кодирования вы можете легко перейти на свою хром-консоль (щелкнуть правой кнопкой мыши => проверить) и ввести:
btoa("string you want to encode")
(или использовать базовую авторизацию почтальона)источник
Согласно приведенным выше ответам, он работает хорошо.
Если мы вставим curl-запросы с данными авторизации в import, Postman установит все заголовки автоматически. Мы просто передаем данные строки JSON в теле запроса, если это необходимо, или загружаем изображения через данные формы в теле.
Это всего лишь пример. Ваш API должен быть другим (если ваш API позволяет)
источник