Hantar permintaan HTTP
Tindakan Hantar permintaan HTTP menyambungkan aliran kerja anda ke pelayan web atau URL dan menghantar permintaan HTTP.
Selepas Flow menghantar permintaan HTTP anda, Flow menunggu maksimum 30 saat untuk mendapatkan kod respons HTTP. Jika Flow masih belum menerima respons selepas 30 saat, sambungan ke aplikasi anda akan ditutup. Kemudian, Flow akan mencuba semula permintaan itu.
Pada halaman ini
Medan
Tindakan Hantar permintaan HTTP mengandungi medan berikut.
| Medan | Penerangan |
|---|---|
| Kaedah HTTP | Kaedah permintaan HTTP yang hendak dihantar. Hantar permintaan HTTP tindakan menyokong kaedah yang berikut:
|
| URL | URL pelayan tempat permintaan HTTP dihantar. |
| Pengepala | Pasangan kunci dan nilai untuk permintaan HTTP. Berbilang pasangan kunci-nilai boleh dimasukkan. |
| Isi | Kandungan yang hendak dihantar ke pelayan. |
| Pada ralat pelanggan (respons 4XX) | Apabila menerima kod respons yang menunjukkan ralat pelanggan, Flow akan:
|
| Jika ralat pelayan (respons 5XX atau 429) | Apabila menerima kod respons yang menunjukkan ralat pelayan, Flow akan:
|
Data yang dikembalikan
Untuk mengakses data yang dikembalikan dalam langkah-langkah selepas tindakan ini, gunakan pemboleh ubah bernama sendHttpRequest, yang merangkumi semua butiran respons HTTP. Secara pilihan, gunakan tindakan Jalankan kod untuk menghurai body respons agar boleh digunakan dalam langkah aliran kerja seterusnya, seperti dalam contoh di bawah.
Jika tindakan Hantar permintaan HTTP digunakan beberapa kali dalam satu aliran kerja, nombor akan ditambahkan pada nama pemboleh ubah. Sebagai contoh, dalam aliran kerja yang menggunakan tindakan Hantar permintaan HTTP sebanyak dua kali, pemboleh ubah pertama untuk data yang dikembalikan ialah sendHttpRequest dan pemboleh ubah kedua ialah sendHttpRequest1. Nama ini tidak boleh disesuaikan.
Kod respons
Jadual berikut menerangkan cara Flow memproses kod respons HTTP selepas ia menerima respons.
| Kod respons HTTP | Cara Flow memproses kod respons |
|---|---|
| 2XX atau 3XX Berjaya | Flow menanda permintaan HTTP sebagai berjaya dan melaksanakan tindakan seterusnya dalam aliran kerja. |
| Ralat 4XX, Ralat 5XX dan 429 | Bergantung pada cara tindakan dikonfigurasikan, Flow akan:
|
| Kod respons lain | Jika respons mengembalikan kod yang tidak diterangkan dalam jadual ini atau ia tamat masa semasa mencuba semula tindakan, Flow akan menanda permintaan HTTP sebagai gagal, menggagalkan jalankan aliran kerja dan tidak mengambil tindakan aliran kerja yang seterusnya. |
Rahsia
Rahsia digunakan untuk menyimpan maklumat sensitif secara selamat bagi penggunaan dalam tindakan Hantar permintaan HTTP, seperti token akses atau kata laluan. Rahsia dicipta dan diurus daripada halaman Flow > Tetapan. Rahsia mengandungi nama, nilai dan perihalan. Rujuk rahsia sebagai pemboleh ubah Liquid (seperti {{secrets.handle}}) atau daripada pilihan Tambah rahsia apabila mengkonfigurasikan medan URL, nilai Pengepala atau Badan. Nilai rahsia tidak akan kelihatan dalam antara muka Flow dan dipadamkan daripada log jalankan aliran kerja.
Pencetus
Tindakan Hantar permintaan HTTP boleh digunakan dalam sebarang aliran kerja.
Contoh
Contoh 1: Hantar permintaan HTTP ke perkhidmatan luaran
Dalam contoh ini, gunakan Flow untuk menghantar permintaan HTTP kepada perkhidmatan luaran.
Sebelum anda bermula, konfigurasikan perkhidmatan web yang menerima permintaan HTTP dan menyimpan data permintaan tersebut untuk ujian, seperti Request Catcher. Sila berhati-hati apabila menghantar data sensitif (seperti kata laluan atau kunci API) ke perkhidmatan pihak ketiga.
Langkah-langkah:
- Pilih pencetus Status produk dikemas kini, yang membolehkan anda menguji aliran kerja ini dengan menukar status pada produk.
- Tambahkan tindakan Hantar Permintaan HTTP pada aliran kerja anda dan sambungkannya pada pencetus. Kemudian, buka panel konfigurasi dengan mengklik langkah Hantar Permintaan HTTP .
- Dalam medan Kaedah HTTP, masukkan
POST. - Dalam medan URL, masukkan URL untuk diuji, seperti
https://yourFlowTest.requestcatcher.com/test. - Dalam bahagian Pengepala, masukkan pengepala dengan Kunci
Content-Typedan Nilaitext/plain. - Dalam bahagian Badan, masukkan
{{product.title}}dan{{product.status}}untuk menghantar tajuk dan status produk yang dikemas kini daripada pencetus.
- Dalam medan Kaedah HTTP, masukkan
- Aktifkan aliran kerja.
- Uji aliran kerja dengan menukar status pada Produk, seperti daripada Draf kepada Aktif.
- Perhatikan keputusan dalam perkhidmatan ujian luaran, seperti
https://yourFlowTest.requestcatcher.com/dalam contoh ini.
Contoh 2: Gunakan Jalankan kod untuk menghurai respons HTTP
Dalam contoh ini, gunakan Flow untuk menghantar permintaan HTTP ke perkhidmatan luaran dan tindakan Jalankan kod untuk menghurai body respons HTTP untuk digunakan dalam langkah aliran kerja seterusnya.
Sebelum anda bermula, pilih perkhidmatan web yang menerima permintaan HTTP dan mengembalikan data, seperti Postman Echo. Sila berhati-hati apabila menghantar data sensitif (seperti kata laluan atau kunci API) ke perkhidmatan pihak ketiga.
Langkah-langkah:
Pilih pencetus Status produk dikemas kini, yang membolehkan anda menguji aliran kerja ini dengan menukar status pada produk.
Tambahkan tindakan Hantar Permintaan HTTP pada aliran kerja anda dan sambungkannya pada pencetus. Kemudian, buka panel konfigurasi dengan mengklik langkah Hantar Permintaan HTTP.
Dalam medan Kaedah HTTP, masukkan
POST.Dalam medan URL, masukkan URL untuk diuji, seperti
https://postman-echo.com/post.Dalam bahagian Pengepala, masukkan pengepala dengan Kunci
Content-Typedan Nilaiapplication/json.Dalam bahagian Badan, masukkan contoh JSON untuk dikembalikan ke aliran kerja, seperti:
{ "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
Tambahkan tindakan Jalankan kod pada aliran kerja anda dan sambungkannya pada tindakan Hantar permintaan HTTP. Kemudian, buka panel konfigurasi dengan mengklik langkah Jalankan kod.
Dalam medan Takrifkan input, sertakan
bodyyang dikembalikan oleh objeksendHTTPrequest, seperti:query{ sendHttpRequest { body } }Dalam medan Takrifkan output, yang ditakrifkan dalam skema output, seperti:
type Output { productTitle: String! productStatus: String! }Dalam medan Tulis kod, huraikan respons menggunakan kaedah
JSON.parsedan pastikan data yang anda kembalikan sepadan dengan bentuk dan jenis yang ditakrifkan dalam skema output, seperti:export default function main(input) { const body = JSON.parse(input.sendHttpRequest.body); console.log("body is", body); return { productTitle: body.data.productTitle, productStatus: body.data.productStatus } }
Tambahkan tindakan Logkan output pada aliran kerja anda dan sambungkannya pada tindakan Jalankan kod. Kemudian, buka panel konfigurasi dengan mengklik langkah Jalankan kod.
Dalam medan Output, sertakan pemboleh ubah yang dikembalikan oleh langkah Jalankan kod, seperti:
Title from HTTP response: {{runCode.productTitle}} Status from HTTP response: {{runCode.productStatus}}
Aktifkan aliran kerja.
Uji aliran kerja dengan menukar status pada Produk, seperti daripada Draf kepada Aktif.
Perhatikan hasil jalankan daripada halaman Flow / Jalankan terbaharu dan sahkan bahawa nilai dalam langkah Logkan output sepadan dengan nilai yang dikembalikan daripada output Hantar permintaan HTTP.
Templat
Maklumkan penyedia pemenuhan anda tentang pesanan akan datang
Hantar permintaan HTTP kepada penyedia pemenuhan anda apabila pesanan ditag "Warehouse" dalam Order Tagger. Lihat templat
Hantar pesanan baharu ke Airtable
Hantar pesanan ke Airtable apabila pesanan dicipta. Lihat templat
Hantar semua produk sedia ada dan baharu kepada Airtable
Setiap 10 minit, cari produk yang belum dihantar kepada Airtable (mengikut tag) dan hantarnya kepada Airtable. Lihat templat
Kemaskinikan produk dalam kelompok daripada data produk yang disimpan dalam Airtable
Kemaskinikan produk dalam kelompok daripada data produk yang disimpan dalam Airtable. Lihat templat
Maklumkan pelanggan tentang kad hadiah yang hampir luput menggunakan SendGrid
Setiap hari, dapatkan semua kad hadiah yang akan luput dalam masa 7 hari dan hantar e-mel kepada pelanggan menggunakan SendGrid. Lihat templat
Hantar e-mel menggunakan SendGrid apabila pelanggan membuat pesanan untuk item tersuai
Hantar e-mel transaksi menggunakan SendGrid apabila pelanggan membuat pesanan untuk item tersuai. Lihat templat