HTTPREQUEST | Dokumentasi 4D

Httprequest

HTTPREQUEST Class mengelola objek HTTPREQUEST yang dapat digunakan untuk mengonfigurasi server HTTP, mengirim permintaan, dan memproses server HTTP.

HTTPREQUEST Class terletak di toko kelas 4D. Fungsi 4d. httpRequest. new () digunakan untuk membuat dan mengirim permintaan http dan mengembalikan objek httpRequest.

boot Mengubah
19 R6 Penambahan kelas

Ejemplo​

Buat kelas MyHTTPRequestOptions untuk opsi permintaan:

Konstruktor kelas ($ Metode: Teks; $ header: objek; $ body: teks). This. method: = $ Method This. headers: = $ header This. body: = $ body Function OnRespone ($ Request: 4d. httpRequest; $ Event: Object) Jika Anda ingin memproses permintaan Anda secara tidak sinkron, // metode OnResponse saya Function OnError ($ Request: 4d. httpRequest; $ Event: Object) Jika Anda ingin memproses permintaan Anda secara tidak sinkron, gunakan metode Onroror saya. 

Anda sekarang dapat membuat permintaan:

Var $ header: objek Header: = objek baru () $ header [field1]: = "value1" var myHttprequestoptions: cs. myhttprequestoptions MyHttpRequestOptions: = cs. myHttpRequestOptions. new ("get"; $ header; ") Var $ Request: 4d. httpRequest $ request: = 4d. httpRequest. new ("www. google. com"; myHttpRequestOptions) $ Request. wait () // Jika Anda ingin menyinkronkan permintaan Anda // Gunakan $ request. respony untuk mengakses hasil permintaan, dan $ request. error untuk mengonfirmasi kesalahan yang terjadi. 

Objeto HTTPRequest​

Objek HTTPRequest adalah objek yang tidak dapat dibagikan.

Objek HTTPRequest menyediakan properti dan fungsi berikut:

Agen: Objek agen disahkan dalam opsi 4d. httpagent, atau objek agen global jika dihilangkan.
DataType: Tentukan tipe data yang dilewati sebagai opsi dengan teks.
Pengkodean: Pengkodean diberikan ke objek opsional saat memanggil baru ().
Kesalahan: Jika setidaknya satu kesalahan dihasilkan, semua koleksi kesalahan
Header: Header yang diberikan kepada objek opsi saat memanggil objek baru ().
Metode: Metode Buku Teks Lulus ke Opsi Opsi pada saat panggilan.
Protokol: Tentukan protokol yang diberikan kepada objek opsi saat memanggil baru ().
Tanggapan: Jika Anda telah menerima kode status setidaknya, respons terhadap permintaan, jika tidak itu tidak ditentukan
Tentukan ReturnResponseBody yang diteruskan ke objek opsional saat memanggil ReturnResponseBody: new () di Boolean.
Mengakhiri permintaan.
Diakhiri: Jika permintaan boolean selesai (setelah menelepon o n-terminasi), benar, jika tidak, salah.
Timeout: Baru () Batas waktu diteruskan ke objek opsi pada saat menelepon.
URL: URL permintaan HTTP
. Tunggu (< time : Real >): Httprequestclass menunggu server merespons.

4D.HTTPRequest.new()​

sejarah

boot Mengubah
20 Validasi TLS default
19 R7 Dukungan untuk AutomaticalDirections dan Decodedata Properties

4d. httpRequest. new (url: teks< ; options : Object >): 4d. httpRequest

Parameter jenis penjelasan
Url teks -> URL untuk mengirim permintaan
pilihan Obyek -> Permintaan pengaturan properti
hasil 4d. httpRequest Objek httprequest baru

Descripción​

Fungsi 4d. httpRequest. new () membuat, mengirimkan permintaan HTTP pada server HTTP yang ditentukan dalam URL dengan opsi yang ditentukan, dan mengembalikan objek 4D. httpRequest.

Objek HTTPRequest yang dikembalikan digunakan untuk menangani respons server HTTP dan memanggil metode tersebut.

Ke URL, berikan URL yang ingin Anda kirimkan permintaan. Sintaks yang digunakan

[:[]@]tuan rumah[:][/][?] [:[]@]tuan rumah[:][/][?] 

Jika Anda menghilangkan bagian (http: // atau https: //) (http: // atau https: //), Anda akan mengirimkan permintaan https.

Misalnya, Anda dapat melewati string karakter berikut:

 http://www. myserver. com  www. myserver. com/path  http://www. myserver. com/path? name="jones "  https://www. myserver. com/login  http://123. 45. 67. 89:8083  http: // john: smith@123. 45. 67. 89: 8083  http: // [2001: 0db8: 0000: 0000: 0000: 0000: FF00: 0042: 8329]  http: // "2001: 0db8: 000000: 000000: 0000: P0000: 8329 

Parámetro options ​

Berikan objek yang berisi properti berikut ke parameter opsi:

Milik jenis penjelasan Bawaan
agen 4d. httpagent Httpagent digunakan untuk httpRequest. Opsi agen digabungkan ke dalam opsi permintaan (opsi permintaan diprioritaskan). Jika agen tertentu tidak ditentukan, agen global dengan nilai default digunakan. Objek Agen Global
Pengalihan otomatis Boulewable Dalam kasus benar, pengalihan secara otomatis dieksekusi (hingga lima pengalihan diproses, dan jika ada, respons pengalihan keenam akan dikembalikan). BENAR
tubuh variasi Badan Permintaan (Diperlukan untuk Posting atau Permintaan Posting). Ini adalah teks, gumpalan, atau objek. Tipe konten ditentukan oleh jenis properti ini kecuali jika didefinisikan di header. belum diartikan
CertificatesFolder map Tentukan folder sertifikat klien aktif. belum diartikan
Tipe data teks Jenis atribut badan respons. Nilai: “teks”, “gumpalan”, “objek”, atau “otomatis”. Dalam kasus “Auto”, jenis konten tubuh harus disimpulkan dari jenis MIME (untuk JSON (untuk JSON, JavaScript, XML, pesan http, teks untuk formulir yang dikodekan URL, jika tidak, jika tidak. Gumpalan). “MOBIL”
Data Decoded Boulewable Dalam kasus True, data yang diterima dalam panggilan balik ondata dicairkan. PALSU
Pengkodean teks Ini hanya digunakan untuk permintaan (Metode Posting atau Put) dengan tubuh. Pengkodean Saat konten dari Badan Permintaan adalah teks. Diabaikan jika tipe konten didefinisikan di header. “UTF-8
header Obyek Meminta header. Symphony: headers. key = value (jika kunci yang sama muncul beberapa kali, nilai bisa menjadi koleksi) Benda langit
Metode teks “Posting”, “dapatkan” atau metode lain “MENDAPATKAN
Mintlsversion teks Tentukan versi terkecil dari TLS. “Tlsv1_0”, “tlsv1_1”, “tlsv1_2”, “tlsv1_3”. “TLSV1_2”
D i-data fungsi Panggilan balik saat menerima data tubuh. Menerima dua objek sebagai parameter (lihat di bawah) belum diartikan
D i-runer fungsi Panggilan balik saat kesalahan terjadi. Menerima dua objek sebagai parameter (lihat di bawah). belum diartikan
D i-Header fungsi Callback pada saat penerimaan header. Menerima dua objek sebagai parameter (lihat di bawah). belum diartikan
Pada respons fungsi Panggilan balik pada saat tanggapan. Menerima dua objek sebagai parameter (lihat di bawah). belum diartikan
akhir fungsi Panggilan balik saat permintaan berakhir. Menerima dua objek sebagai parameter (lihat di bawah). belum diartikan
protokol teks Otomatis “atau” http1 “. Otomatis berarti http1 dalam implementasi saat ini. “MOBIL”
Otentikasi proxy Objek otentikasi Otentikasi otentikasi proxy manajemen objek belum diartikan
Otentikasi Server Objek otentikasi Objek Manajemen Otentikasi Server belum diartikan
ReturnResponseBody Boulewable Dalam kasus False, badan respons tidak mengembalikan objek respons. Mengembalikan kesalahan jika false dan ondata tidak ditentukan. BENAR
Batas waktu BENAR Jumlah detik dari waktu tunggu. Tidak terlindungi = tidak ada batas waktu belum diartikan
Validasi TLScerticate Boulewable Jika salah, 4D tidak memvalidasi sertifikat TLS dan tidak mengembalikan kesalahan bahkan untuk sertifikat yang tidak valid (kedaluwarsa, ditandatangani sendiri, dll.). Penting: Implementasi saat ini tidak memverifikasi otoritas sertifikat itu sendiri. BENAR

Función callback (retrollamada)​

Semua fungsi panggilan balik menerima dua parameter objek:

Parameter jenis
param1 objek HTTPRequest
Parameter 2 objek acara

Ini adalah urutan panggilan balik:

  1. onHeaders selalu dipanggil hanya sekali.
  2. onData dapat dipanggil nol kali atau lebih (tidak dipanggil jika permintaan tidak memiliki isi).
  3. onResponse selalu dipanggil hanya sekali jika tidak terjadi kesalahan.
  4. Jika terjadi kesalahan, onError dijalankan hanya sekali (dan mengakhiri permintaan).
  5. onTerminate selalu dijalankan satu kali

Untuk memanggil fungsi panggilan balik saat tidak menggunakan wait() (panggilan asinkron), prosesnya harus berupa pekerja yang dibuat dengan CALL WORKER.

objeto evento​

Saat fungsi panggilan balik dipanggil, objek acara dikembalikan. Objek ini berisi properti berikut:

Milik jenis penjelasan
data gumpal Data yang diterima. Selalu tidak ditentukan kecuali dalam panggilan balik onData.
. jenis teks Jenis acara. Nilai yang mungkin: “response”, “error”, “headers”, “data”, atau “terminate”.

authentication object​

Objek autentikasi menangani properti options. serverAuthentication atau options. proxyAuthentication. Dapat berisi properti berikut:

Milik jenis penjelasan Bawaan
nama teks Nama yang digunakan untuk otentikasi belum diartikan
kata sandi teks Kata sandi yang digunakan untuk otentikasi belum diartikan
Metode teks Metode autentikasi: “dasar”, “intisari”, “otomatis”, “otomatis” “MOBIL”

HTTP Parse message​

sejarah

boot Mengubah
20 R4 tambahan

Pesan yang diurai HTTP ( data : Teks ): Objek Pesan yang diurai HTTP ( data : Blob ): Objek

Parameter jenis penjelasan
data teks, gumpalan -> Data yang akan dianalisis
hasil Obyek Objek, setiap properti adalah bagian dari data multipart

Descripción​

Perintah pesan HTTP Parse mem-parsing teks atau gumpalan multipart/form-data (“respon” pesan HTTP) dan mengekstrak kontennya ke dalam objek. Setiap properti dari objek yang dikembalikan sesuai dengan bagian data multibagian.

HTTP itu sendiri adalah keadaa n-dar i-Th e-ART Communication Protocol. Dalam kerangka kerja ini, klien memulai komunikasi dengan mengirim pesan “permintaan” ke server, yang menentukan rincian metode, target, header, dan konten. Server merespons dengan pesan “respons” yang berisi detail yang sama. Pesan Parse HTTP menganalisis pesan “permintaan” atau “respons” ke dalam objek terstruktur.

Ejemplo​

Contoh berikut menganalisis data file teks, termasuk permintaan HTTP.

Ini adalah konten file:

POST/BATCH/GMAIL/V1/HTTP/1. 1 Accept-Encoding: GZIP, mengempiskan Otentikasi: pembawa xxxxxx Koneksi: Tutup Panjang konten: 442 Tipe konten: multipar/campuran; Tanggal: Rabu, 29 Nov 2023 13:51:35 GMT Host: gmail. googleapis. com Agen Pengguna: 4d/20. 4. 0  --Batch_19438756D576A14ABA87C112F56B9396 Jenis Konten: Aplikasi/http Konten-ID:Dapatkan https://gmail. googleapis. com/gmail/v1/users/me/messages/18c1b58689824c92? Format=raw http/1. 1  --Batch_19438756D576A14ABA87C112F56B9396 Jenis Konten: Aplikasi/http Konten-ID:Dapatkan https://gmail. googleapis. com/gmail/v1/users/me/mesages/18c1b58642b28e2b? format=raw http/1. 1 --Batch_19438756d576a14aba87c112f56b9396-- 

Dompet file

Var $ Pesan: Teks: = File ("Sumber Daya/HttpRequest. txt"). var $ parsedMessage: objek: = pesan parse http ($ pesan) // $ $ $ parsedMessage =// header: ... // bagian: [], // Requestline: "POST/BATCH/GMAIL/V1/HTTP/1. 1" // Requestline: "Post/Batch/Gmail/V1/HTTP/1. 1" " //> 

.agent​

Agen: 4d. httpagent

Descripción​

Properti . AGENS menyimpan objek agen opsional atau objek agen global jika dihilangkan.

.dataType​

DataType: Teks

Descripción​

Di properti . datatype, datype yang dilewati oleh objek opsi saat memanggil baru () disimpan, dan “otomatis” disimpan jika dihilangkan.

.encoding​

Pengkodean: Teks

Descripción​

Properti pengkodean menyimpan pengkodean yang diteruskan ke objek opsi saat memanggil baru ().

.errors​

Kesalahan: Koleksi

Descripción​

Jika setidaknya satu kesalahan terjadi di properti . rors, semua kesalahan disimpan.

Ini adalah isi properti . Errors:

Milik jenis penjelasan
kesalahan koleksi Tumpukan kesalahan 4D saat kesalahan terjadi
[Kode Kesalahan nomor Kode kesalahan 4D
[pesan teks Penjelasan kesalahan 4D
[Tanda Tangan Komponen teks Signchae dari komponen internal yang mengembalikan kesalahan

.headers​

Header: Objek

Descripción​

Properti . Headers menyimpan header yang dilewati oleh objek opsi saat memanggil baru (). Jika dihilangkan, objek kosong akan disimpan.

.method​

Metode: Teks

Descripción​

Properti . method menyimpan metode yang diteruskan ke objek opsi saat memanggil baru (). .

.protocol​

Protokol: Teks

Descripción​

Protokol diteruskan ke objek opsi saat memanggil baru () disimpan di properti . protocol. Jika Anda dihilangkan atau jika “otomatis” digunakan, versi protokol disertakan.

.response​

sejarah

boot Mengubah
19 R8 . Headers sekarang mengembalikan nama dalam huruf kecil. Properti . Raweaders baru

Respons: Objek

Descripción​

Properti . respone mencakup setidaknya respons terhadap permintaan jika Anda menerima kode status, dan jika tidak itu tidak ditentukan.

Objek respons adalah objek no n-shared. Memberikan properti berikut:

Milik jenis penjelasan
tubuh variasi Badan respons. Jenis pesan didefinisikan sesuai dengan properti tipe data. Jika tubuh belum diterima, itu tidak ditentukan.
. Headers Obyek Header respons. Nama header dikembalikan dengan huruf kecil. . Key = nilai (nilai adalah koleksi ketika kunci yang sama muncul beberapa kali). Jika Anda belum menerima header, itu tidak ditentukan.
. status nomor Kode Status Respons
. statustext teks Pesan menjelaskan kode status
. Rawheaders Obyek Header respons. Nama header dikembalikan (dibedakan antara huruf kapital dan huruf kecil). . Key = nilai (jika kunci yang sama muncul beberapa kali, nilainya bisa menjadi koleksi). Jika Anda belum menerima header, itu tidak ditentukan.

.returnResponseBody​

ReturnResponseBody: Nilai logis

Descripción​

Properti . ReturnResponseBody menyimpan ReturnResponseBody yang disahkan oleh opsi saat menelepon baru (). Jika dihilangkan, true disimpan.

.terminate()​

. membing ()

Parameter jenis penjelasan
Tidak ada parameter yang diperlukan.

Descripción​

Fungsi . abinat () mengakhiri permintaan HTTP. Memicu peristiwa o n-terminasi.

.terminated​

Diakhiri: Boolean

Descripción​

Properti yang diatur kembali mengembalikan benar ketika permintaan selesai (setelah memanggil o n-terminasi), dan salah dalam kasus lain.

.timeout​

Timeout: Benar

Descripción​

Properti timeout menyimpan batas waktu yang dilewati oleh opsi saat memanggil baru (). .

.url​

URL: Teks

Descripción​

Simpan properti . url URL permintaan HTTP.

.wait()​

. Tunggu (< time : Real >): HttpRequestClass

Parameter jenis penjelasan
waktu BENAR -> Waktu maksimum untuk menunggu respons (detik
hasil 4d. httpRequest HTTPREQUEST Obyek

Descripción​

Tunggu () Fungsi menunggu respons dari server.

Jika parameter waktu dilewati, fungsi akan menunggu hingga beberapa detik yang ditentukan.

Jika respons dari server telah tiba, fungsi ini akan segera kembali.