PostMan'da belirli bir CURL benzetimi


154

Bir API sunucusuna bazı Curl isteklerini test etmek için Postman kullanıyorum. API geliştiricileri bize curl komutunu verdi, ancak Postacıdan gönderemiyorum. Postacıdan böyle bir talep nasıl yapılır?

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—

Yanıtlar:


423

Daha basit bir yaklaşım şöyle olacaktır:

  1. POSTMAN'ı aç
  2. Sol üst taraftaki "içe aktar" sekmesini tıklayın.
  3. Ham Metin seçeneğini seçin ve cURL komutunuzu yapıştırın.
  4. İçe aktar düğmesine bastığınızda, Komutan Postman oluşturucunuzda olacak!
  5. Komutu göndermek için Gönder'i tıklayın

Bu yardımcı olur umarım!


4
Bu gönderiyi görene kadar bunu yapabileceğini hiç bilmiyordum. Teşekkürler!
austinthedeveloper

3
Bu tam olarak istediğim şeydi. Teşekkürler!
Joshua Dance

3
Denedim ve kısmen çalıştı. Bu benim kıvrılma isteğim: 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 Gövdeyi içe aktardıktan sonra, üstbilgiler ve URL de içe aktarıldı. Yalnızca -u 9f4d7f5445e7: https://api.myapp.com/api/v1/eventbukle isteğindeki api anahtarı 9f4d7f5445e7 içe aktarılmadı ya da Postacı atladı. Nasıl çözüleceği hakkında bir fikrin var mı?
Rito

1
Ben myselft tarafından cml kıvırmak ithal anladım. Ama içe aktarılan kıvrımla sayfanın nerede olduğunu bulmak için beni bir süre aldı, bir dosya / cmd içe aktarılırken hiçbir şey olmuyor gibi görünüyor. Daha sonra sağ üst taraftaki "kod" düğmesine tıklayın (kaydet düğmesinin altında). Sonra kıvrımınızın yüklü olup olmadığını göreceksiniz.
zhihong

Bu yaklaşım, içine kodladığım kimlik bilgilerini kullanmıyordu, bu yüzden fare ve açılır menüleri kullanarak gerçek istek içine Auth> Basic Auth kullanarak el ile eklemek zorunda kaldım. Bahsetmeye değer, çünkü yazılımın davranışı kredileri kabul etmiş ve kullanmış gibi görünmektedir: sadece "lütfen bazı kimlik bilgilerini sağlayın" yerine "lütfen geçerli kimlik bilgilerini sağlayın" dır.
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/signinURL giriş kutusuna koyun POSTve açılır menüden seçim yapın

2) Üstbilgiler sekmesine şunu girin:

İçerik Türü: resim / jpeg

İçerik Aktarımı Kodlaması: ikili

3) Gövde sekmesinde rawradyo düğmesini seçin ve şunu yazın:

{"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-dataradyo düğmesini seç ve yaz:

key = name Değer = userfile Select Text tuşu = dosyaadı FileProfil.jpg dosyanızı seçip yükleyin


5

Onkaar Singh'in bahsettiği yaklaşımı denedim,

  1. POSTMAN'ı aç
  2. Sol üst taraftaki "içe aktar" sekmesini tıklayın.
  3. Ham Metin seçeneğini seçin ve cURL komutunuzu yapıştırın.
  4. İçe aktar düğmesine bastığınızda, Komutan Postman oluşturucunuzda olacak!

Ancak sorun, yetkilendirme gerektiren Apiler için işe yaramadı.

Bu benim kıvrılma isteğim oldu:

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

Gövdeyi içe aktardıktan sonra, başlıklar ve Url de içe aktarıldı. Sadece api anahtarı 9f4d7f5445e7 olan

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

kıvırmak isteği almadı.

Çözdüğüm yol, -u temelde Yetkilendirme için kullanılıyor. Bu yüzden Postman'da kullanırken, API anahtarını ( 9f4d7f5445e7bu durumda) almanız ve Base64 Encode'u yapmanız gerekir. Kodlandıktan sonra değeri döndürür OWY0ZDdmNTQ0NWU3. Sonra yeni bir başlık ekleyin, anahtar adı Authorizationve anahtar değeri olacaktır Basic OWY0ZDdmNTQ0NWU3. Bu değişiklikleri yaptıktan sonra, istek benim için çalıştı.

Çevrimiçi Base64 Kodlayıcılar var, kullandığım http://www.url-encode-decode.com/base64-encode-decode/

Umarım yardımcı olur!!!


postacının yetkilendirme sekmesinde Temel Kimlik Doğrulama'yı seçin ve Base64 üstbilgisini oluşturur
Electricalbah

2

bazen cURL'u her kopyaladığınızda, - sıkıştırılmış içerir. İçe aktarma sırasında kaldırın-> Ham Metin Yapıştır -> içe aktar'a tıklayın. Herhangi bir cURL alırken postacıda sözdizimi hatası alıyorsanız da sorunu çözecektir.

Genel olarak, insanlar cURL'yi Charles gibi herhangi bir proxy aracından kopyaladığında, olur.


0

Yukarıdaki çoklu cevaplarda belirtildiği gibi, cURL'yi doğrudan POSTMAN'a aktarabilirsiniz. Ancak, URL yetkilendirilmişse (veya herhangi bir nedenden dolayı çalışmıyorsa) tüm veri noktalarını postacı gövdenize manuel olarak JSON olarak eklemenizi öneririz. cURL'den API URL'sini alın.

Yetkilendirme kısmı için bir Yetkilendirme anahtarı ekleyin ve 64 kodlanmış dizeyi değer olarak ekleyin.

misal:

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" }

Üstbilgiler: Authorization:Basic cnpwX3Rlc3RfWEk5QW5TU0N3RlhjZ0Y6dURjVThLZ3JiQVVnZ3JNS***U056V25J burada "cnpwX3Rlc3RfWEk5QW5TU0N3RlhjZ0Y6dURjVThLZ3JiQVVnZ3JNS *** U056V25J", "rzp_test_26ccbdbfe0e84b: 69b2e24411e12911e4911e49119"

küçük ipucu: kodlama için kolayca krom konsolunuza gidebilir (sağ tıklama => inceleyin) ve şunu yazabilirsiniz: btoa("string you want to encode")(veya postacı temel yetkilendirmesini kullanabilirsiniz)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.