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 |
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.
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. |
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 |
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
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 |
Semua fungsi panggilan balik menerima dua parameter objek:
Parameter | jenis |
---|---|
param1 | objek HTTPRequest |
Parameter 2 | objek acara |
Ini adalah urutan panggilan balik:
Untuk memanggil fungsi panggilan balik saat tidak menggunakan wait() (panggilan asinkron), prosesnya harus berupa pekerja yang dibuat dengan CALL WORKER.
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”. |
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” |
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 |
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.
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" " //>
Agen: 4d. httpagent
Properti . AGENS menyimpan objek agen opsional atau objek agen global jika dihilangkan.
DataType: Teks
Di properti . datatype, datype yang dilewati oleh objek opsi saat memanggil baru () disimpan, dan “otomatis” disimpan jika dihilangkan.
Pengkodean: Teks
Properti pengkodean menyimpan pengkodean yang diteruskan ke objek opsi saat memanggil baru ().
Kesalahan: Koleksi
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 |
Header: Objek
Properti . Headers menyimpan header yang dilewati oleh objek opsi saat memanggil baru (). Jika dihilangkan, objek kosong akan disimpan.
Metode: Teks
Properti . method menyimpan metode yang diteruskan ke objek opsi saat memanggil baru (). .
Protokol: Teks
Protokol diteruskan ke objek opsi saat memanggil baru () disimpan di properti . protocol. Jika Anda dihilangkan atau jika “otomatis” digunakan, versi protokol disertakan.
sejarah
boot | Mengubah |
---|---|
19 R8 | . Headers sekarang mengembalikan nama dalam huruf kecil. Properti . Raweaders baru |
Respons: Objek
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: Nilai logis
Properti . ReturnResponseBody menyimpan ReturnResponseBody yang disahkan oleh opsi saat menelepon baru (). Jika dihilangkan, true disimpan.
. membing ()
Parameter | jenis | penjelasan |
---|---|---|
Tidak ada parameter yang diperlukan. |
Fungsi . abinat () mengakhiri permintaan HTTP. Memicu peristiwa o n-terminasi.
Diakhiri: Boolean
Properti yang diatur kembali mengembalikan benar ketika permintaan selesai (setelah memanggil o n-terminasi), dan salah dalam kasus lain.
Timeout: Benar
Properti timeout menyimpan batas waktu yang dilewati oleh opsi saat memanggil baru (). .
URL: Teks
Simpan properti . url URL permintaan HTTP.
. Tunggu (< time : Real >): HttpRequestClass
Parameter | jenis | penjelasan | |
---|---|---|---|
waktu | BENAR | -> | Waktu maksimum untuk menunggu respons (detik |
hasil | 4d. httpRequest | HTTPREQUEST Obyek |
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.