Katakanlah kita perlu mendapatkan data dari situs, yang pengumpulannya secara manual tidak praktis atau tidak mungkin karena volumenya. Dalam kasus seperti itu, kami dapat mengotomatiskan proses menggunakan alat yang dijelaskan di bawah ini. Show
perpustakaan permintaanPustaka Python untuk membuat permintaan ke server dan memproses tanggapan. Dasar dari skrip parsing dan senjata utama kami. Menggunakan perpustakaan ini, kami mendapatkan konten halaman dalam bentuk html untuk parsing lebih lanjut. impor permintaan tanggapan = permintaan . get ("https://ya.ru" ) # get-request print (respons .text ) # konten halaman cetak payload = ( "key1" : "value1", "key2" : "value2" ) response = request . get("http://httpbin.org/get", params = payload ) # permintaan dengan parameter headers = ( "user-agent" : "my-app/0.0.1" ) response = request . dapatkan(url , tajuk = tajuk ) # permintaan dengan header html tertentu APIAntarmuka pemrograman aplikasi - antarmuka pemrograman aplikasi yang disediakan oleh pemilik aplikasi web kepada pengembang lain. Kurangnya API yang dapat memenuhi kebutuhan kita adalah hal pertama yang harus dipastikan sebelum bergegas menganalisis kode sumber halaman dan menulis parser untuk itu. Banyak situs populer memiliki API dan dokumentasi mereka sendiri yang menjelaskan cara menggunakannya. Kami dapat menggunakan api dengan cara ini - kami membentuk permintaan http sesuai dengan dokumentasi, dan kami mendapatkan respons menggunakan permintaan. BS4Beautifulsoup4 adalah perpustakaan untuk mengurai dokumen html dan xml. Memungkinkan Anda mengakses langsung konten tag apa pun dalam html. from bs4 import BeautifulSoup soup = BeautifulSoup (raw_html , "html.parser" ) print (sup . find ("p" , class_ = "some-class" ) .text ) # print isi tag "p" dengan class "some-class" Selenium WebDriverData di situs dapat dihasilkan secara dinamis menggunakan javascript. Dalam hal ini, permintaan + bs4 tidak akan dapat mengurai data ini. Faktanya adalah bahwa bs4 mem-parsing kode sumber halaman tanpa mengeksekusi js. Untuk mengeksekusi kode js dan mendapatkan halaman yang identik dengan yang kita lihat di browser, Anda dapat menggunakan driver web Selenium - ini adalah satu set driver untuk browser yang berbeda, disertakan dengan perpustakaan untuk bekerja dengan driver ini. Dan bagaimana jika ada otorisasi?session = request.Session() data = ("login_username":"login", "login_password":"password") url = "http://site.com/login.php" response = session.post(url, data =data) Tetapi bagaimana jika situs tersebut melarang banyak permintaan?
response = request.get(url, timeout=(10, 0.01)) # batas waktu koneksi, batas waktu baca (dalam detik)
user_agent = ("Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:50.0) " "Gecko/20100101 Firefox/50.0") request = request.get(url, headers=("User-Agent":user_agent))
Menghasilkan respons dari pengontrol Setelah pengontrol selesai memproses permintaan, biasanya diperlukan untuk menghasilkan respons. Saat kita membuat pengontrol tingkat rendah dengan langsung mengimplementasikan antarmuka IController, kita harus bertanggung jawab atas setiap aspek pemrosesan permintaan, termasuk menghasilkan respons ke klien. Misalnya, untuk mengirim respons HTML, Anda perlu membuat dan menyusun data HTML, lalu mengirimkannya ke klien menggunakan metode Response.Write(). Demikian pula, untuk mengarahkan ulang browser pengguna ke URL yang berbeda, Anda perlu memanggil metode Response.Redirect() dan meneruskannya ke URL yang diperlukan. Kedua pendekatan ditunjukkan dalam kode di bawah ini, yang menunjukkan ekstensi ke kelas BasicController yang kita buat di artikel sebelumnya menggunakan implementasi antarmuka IController: Menggunakan System.Web.Mvc; menggunakan System.Web.Routing; namespace ControllersAndActions.Controllers ( BasicController kelas publik: IController ( public void Execute(RequestContext requestContext) ( string controller = (string)requestContext.RouteData.Values["controller"]; string action = (string)requestContext.RouteData.Values["action "]; if (action.ToLower() == "redirect") ( requestContext.HttpContext.Response.Redirect("/Derived/Index"); ) else ( requestContext.HttpContext.Response.Write(string.Format("Controller : (0), Metode tindakan: (1)", pengontrol, tindakan)); ) ) ) ) Pendekatan yang sama dapat diterapkan jika controller diwarisi dari kelas Controller. Kelas HttpResponseBase yang dikembalikan saat membaca properti requestContext.HttpContext.Response dalam metode Execute() tersedia melalui properti Controller.Response, seperti yang ditunjukkan dalam contoh berikut, yang memperluas kelas DerivedController, juga dibuat sebelumnya dengan mewarisi dari kelas Kelas pengontrol: Menggunakan Sistem; menggunakan System.Web; menggunakan System.Web.Mvc; namespace ControllersAndActions.Controllers ( public class DerivedController: Controller ( public ActionResult Index() ( // ... ) public void ProduceOutput() ( if (Server.MachineName == "ProfessorWeb") Response.Redirect("/Basic/Index" ); else Response.Write("Controller: Derived, Metode Tindakan: ProduceOutput"); ) ) ) Metode ProduceOutput() menggunakan nilai properti Server.MachineName untuk memutuskan respons mana yang akan dikirim ke klien. ("ProfessorWeb" adalah nama mesin pengembangan saya.) Meskipun pendekatan menghasilkan respons kepada pengguna ini berhasil, ada beberapa masalah dengannya: Kelas pengontrol harus berisi informasi tentang HTML atau struktur URL, yang membuat kelas lebih sulit untuk dibaca dan dipelihara. Kontroler yang menghasilkan respons langsung ke output sulit untuk diuji unit. Anda perlu membuat implementasi tiruan dari objek Response dan kemudian dapat memproses output dari controller untuk menentukan apa itu. Ini mungkin berarti, misalnya, kebutuhan untuk mengimplementasikan penguraian markup HTML pada kata kunci yang merupakan proses yang panjang dan melelahkan. Penanganan detail halus dari setiap respons ini rumit dan rawan kesalahan. Beberapa programmer menyukai kontrol absolut yang disediakan dengan membangun pengontrol tingkat rendah, tetapi ini biasanya menjadi rumit dengan sangat cepat. Untungnya, Kerangka MVC memiliki alat praktis yang menyelesaikan semua masalah yang disebutkan - hasil tindakan. Bagian berikut menjelaskan konsep hasil tindakan dan menunjukkan berbagai cara penggunaannya untuk membangkitkan tanggapan dari pengontrol. Hasil tindakanHasil tindakan dalam Kerangka MVC digunakan untuk memisahkan pernyataan maksud dari eksekusi maksud (maaf untuk tautologinya). Konsepnya tampak sederhana setelah Anda memahaminya, tetapi perlu waktu untuk memahami karena beberapa tipuan. Alih-alih berurusan langsung dengan objek Respon, metode tindakan mengembalikan objek kelas yang diturunkan dari Hasil Tindakan, yang menjelaskan seperti apa seharusnya respons dari pengontrol, seperti merender tampilan atau mengalihkan ke URL atau metode tindakan lain. Namun (ini adalah tipuan yang sangat) jawabannya tidak dihasilkan secara langsung. Sebagai gantinya, objek ActionResult dibuat yang diproses oleh Kerangka Kerja MVC untuk mendapatkan hasil setelah metode tindakan dipanggil. Sistem Hasil Tindakan adalah contoh pola desain Perintah. Templat ini mewakili skenario tempat Anda menyimpan dan meneruskan objek yang menjelaskan operasi yang akan dilakukan. Ketika Kerangka MVC menerima objek ActionResult dari metode tindakan, itu memanggil ExecuteResult() metode Yang didefinisikan dalam kelas objek ini. Implementasi hasil tindakan kemudian beroperasi pada objek Response untuk menghasilkan output yang sesuai dengan maksud Anda. Untuk mendemonstrasikan ini dalam tindakan, mari buat folder Infrastruktur dan tambahkan file kelas baru bernama CustomRedirectResult.cs ke dalamnya dengan implementasi ActionResult kustom yang ditunjukkan pada contoh di bawah ini: Menggunakan System.Web.Mvc; namespace ControllersAndActions.Infrastructure ( public class CustomRedirectResult: ActionResult ( public string Url ( get; set; ) public override void ExecuteResult(ControllerContext context) ( string fullUrl = UrlHelper.GenerateContentUrl(Url, context.HttpContext); context.HttpContext.Redirect (Url lengkap); ) ) ) Kelas ini didasarkan pada cara kerja kelas System.Web.Mvc.RedirectResult. Salah satu kelebihannya sumber terbuka Kerangka kerja MVC adalah tentang kemampuan untuk mengeksplorasi cara kerja apa pun. Kelas CustomRedirectResult jauh lebih sederhana daripada yang setara dengan MVC, tetapi cukup untuk tujuan artikel ini. Saat membuat instance kelas RedirectResult, kami meneruskan URL ke mana pengguna harus diarahkan. Metode ExecuteResult() yang akan dijalankan oleh Kerangka MVC setelah menyelesaikan metode tindakan menerima objek Respon untuk permintaan melalui objek ControllerContext yang disediakan oleh kerangka kerja dan memanggil metode RedirectPermanent() atau metode Redirect() (ini adalah persis apa yang dilakukan di dalam implementasi IController tingkat rendah dalam contoh sebelumnya di artikel). Penggunaan kelas CustomRedirectResult diilustrasikan pada contoh di bawah ini, yang menunjukkan perubahan yang telah dilakukan pada pengontrol Derived: // ... menggunakan ControllersAndActions.Infrastructure; namespace ControllersAndActions.Controllers ( public class DerivedController: Controller ( public ActionResult Index() ( // ... ) public ActionResult ProduceOutput() ( jika (Server.MachineName == "MyMachineName") mengembalikan CustomRedirectResult baru ( Url = "/Basic/ Index" ); else ( Response.Write("Controller: Derived, Metode Tindakan: ProduceOutput"); return null; ) ) ) ) Perhatikan bahwa kita telah dipaksa untuk mengubah hasil dari metode aksi untuk mengembalikan sebuah ActionResult. Kami mengembalikan null jika kami tidak ingin Kerangka MVC melakukan apa pun ketika metode tindakan kami telah selesai, yang dilakukan jika instance CustomRedirectResult tidak dikembalikan. Pengontrol dan Tindakan Pengujian Unit Banyak bagian dari Kerangka MVC dirancang untuk membuat pengujian unit lebih mudah, dan ini terutama berlaku untuk tindakan dan pengontrol. Ada beberapa alasan untuk dukungan ini: Anda dapat menguji tindakan dan pengontrol di luar server web. Objek konteks diakses melalui kelas dasarnya (seperti HttpRequestBase), yang mudah ditiru. Anda tidak perlu mengurai markup HTML untuk menguji hasil metode tindakan. Anda dapat memeriksa objek ActionResult yang dikembalikan untuk memastikan Anda mendapatkan hasil yang diharapkan. Emulasi permintaan klien tidak diperlukan. Sistem pengikatan model Kerangka MVC memungkinkan Anda untuk menulis metode tindakan yang menerima input dalam parameternya. Untuk menguji metode tindakan, Anda hanya perlu memanggilnya secara langsung dan memberikan nilai parameter yang sesuai. Artikel selanjutnya tentang menghasilkan data dari pengontrol akan menunjukkan kepada Anda cara membuat pengujian unit untuk berbagai jenis hasil tindakan. Jangan lupa bahwa pengujian unit hanyalah sebagian dari gambarannya. Perilaku kompleks dalam aplikasi terjadi ketika metode tindakan dipanggil secara berurutan. Pengujian unit paling baik dikombinasikan dengan pendekatan pengujian lainnya. Sekarang setelah Anda mengetahui cara kerja hasil tindakan pengalihan khusus, Anda dapat beralih ke yang setara, yang disediakan oleh kerangka kerja MVC, yang kuat dan diuji secara ekstensif oleh Microsoft. Perubahan yang diperlukan untuk pengontrol Derived diberikan di bawah ini: // ... public ActionResult ProduceOutput() ( mengembalikan new RedirectResult("/Basic/Index"); ) // ... Dihapus dari metode tindakan operator bersyarat, yang berarti setelah menjalankan aplikasi dan membuka URL seperti /Derived/ProduceOutput , browser akan diarahkan ke URL seperti /Basic/Index. Untuk menyederhanakan kode metode tindakan, kelas Controller menyertakan metode praktis untuk menghasilkan berbagai jenis objek ActionResult. Jadi, misalnya, kita bisa mendapatkan efek yang sama seperti pada contoh di atas dengan mengembalikan hasil dari metode Redirect(): // ... public ActionResult ProduceOutput() ( return Redirect("/Basic/Index"); ) // ... Tidak ada yang rumit tentang sistem hasil tindakan, tetapi pada akhirnya membantu untuk mendapatkan kode yang lebih sederhana, lebih bersih, dan lebih konsisten yang mudah dibaca dan diuji unit. Misalnya, dalam kasus pengalihan, Anda cukup memeriksa apakah metode tindakan mengembalikan instance RedirectResult yang properti Urlnya berisi target yang diharapkan. Kerangka MVC mendefinisikan banyak jenis hasil tindakan bawaan, yang dijelaskan dalam tabel di bawah ini:
Semua tipe ini diturunkan dari kelas ActionResult, dan banyak di antaranya memiliki metode pembantu yang praktis di kelas Controller. Kami akan mendemonstrasikan penggunaan jenis hasil ini di artikel berikutnya. Untuk mendapatkan instance kelas ini, gunakan pemanggilan metode wa()->getResponse(), misalnya: Wa()->getResponse()->getHeader("Content-type") Metodefungsi publik tambahkan CSS ($url, $app_id = false)Menambahkan URL ke daftar file CSS. Semua URL file CSS yang ditambahkan dapat diambil di template Smarty menggunakan metode ($wa->css()). Parameter
Contohwa()->getResponse()->addCss("css/myapp.css", "myapp"); fungsi publik tambahkan Google Analytics ($str)Menambahkan cuplikan JavaScript untuk Google Analytics. Kode Google Analytics (termasuk yang ditambahkan oleh metode ini) disertakan dalam template HTML situs menggunakan metode ($wa->headJs()). Parameter
fungsi publik tambahkanHeader ($nama, $nilai, $ganti = benar)Menambahkan header yang akan dikirim oleh server sebagai tanggapan atas permintaan pengguna. Semua header yang ditambahkan dengan cara ini akan dikirim ke pengguna saat menjalankan file . Parameter
Contohwa()->getResponse()->addHeader("Tipe-konten", "aplikasi/json"); fungsi publik tambahkanJs ($url, $app_id = false)Menambahkan URL ke daftar file JavaScript. Semua URL JavaScript yang ditambahkan dapat diambil di template Smarty menggunakan metode ($wa->js()). Parameter
Contohwa()->getResponse()->addJs("js/myapp.js", "myapp"); fungsi publik dapatkanCss ($html = benar, $ketat = salah)Mengembalikan daftar tautan file CSS yang ditambahkan sebelumnya. Parameter
Contohwa()->getResponse()->getCss(); fungsi publik dapatkanHeader ($nama = null)Mengembalikan nilai header respons. Parameter
Contohwa()->getResponse()->addHeader("Tipe-konten", "aplikasi/json"); wa()->getResponse()->getHeader("Tipe-Konten"); Hasilaplikasi/json fungsi publik dapatkanJs ($html = benar)Mengembalikan daftar referensi file respons JavaScript. Parameter
Contohwa()->getResponse()->getJs(); fungsi publik dapatkan Meta ($nama = null)Mengembalikan isi data META: judul halaman ("judul"), kata kunci tag META ("kata kunci"), deskripsi ("deskripsi"). Parameter
Contohwa()->getResponse()->getMeta("kata kunci"); fungsi publik dapatkan status()Mengembalikan status respons server yang ditetapkan sebelumnya. Contohwa()->getResponse()->setStatus(200); wa()->getResponse()->getStatus(); Hasil200 fungsi publik dapatkanJudul()Mengembalikan judul (TITLE) halaman. Contohwa()->getResponse()->setTitle("Toko Online Saya"); wa()->getResponse()->getTitle(); HasilToko online saya fungsi publik mengalihkan ($url, $kode = null)Mengarahkan pengguna ke URL yang ditentukan. Parameter
Contohwa()->getResponse()->redirect("http://domainlain.ru/", 301); fungsi publik kirimHeader()Mengirim tajuk yang telah ditetapkan sebelumnya. Contohwa()->getResponse()->addHeader("Tipe-konten", "aplikasi/json"); wa()->getResponse()->sendHeaders(); fungsi publik set Cookie ($nama, $nilai, $kedaluwarsa = null, $path = null, $domain = "", $secure = false, $http_only = false)Menyetel nilai entri cookie menggunakan fungsi setcookie PHP. Parameter
Contohwa()->getResponse()->setCookie("code", $code, time() + 30 * 86400, null, "", false, true); fungsi publik setMeta ($nama, $nilai = null)Menetapkan nilai data META. Nilai ini tersedia di template Smarty menggunakan metode ($wa->meta()). Parameter
Contohwa()->getResponse()->setMeta("kata kunci", $kata kunci); fungsi publik atur status ($kode)Mengatur status respons server. Parameter
Contohwa()->getResponse()->setStatus(404); fungsi publik setJudul ($judul)Menyetel judul (TITLE) halaman. Konten judul tersedia di template Smarty menggunakan metode ($wa->title()). Objek yang dijelaskan adalah alat yang sangat berguna dan kuat. Objek ini memiliki beberapa metode, deskripsinya diberikan di bawah ini: Koleksi:Metode:Properti:Respon.Koleksi kueKoleksi Cookies menetapkan nilai untuk cookie. Jika cookie yang ditentukan tidak ada, cookie akan dibuat. Jika cookie ada, cookie akan mengambil nilai baru dan yang lama akan dimusnahkan. Response.Cookies(cookie) [(key) | . atribut ] = nilai Parameter:
Komentar: Jika cookie dengan kunci dibuat seperti yang ditunjukkan pada skrip berikut, <% Response.Cookies("mycookie")("type1") = "сахар" Response.Cookies("mycookie")("type2") = "печенье" %> maka header berikut akan dikirim: Set-Cookie:MYCOOKIE=TYPE1=gula&TYPE2=cookies Jika Anda menetapkan nilai ke mycookie tanpa menggunakan kunci, maka tindakan ini akan menghancurkan kunci tipe1 dan tipe2. Contohnya:<% Response.Cookies("myCookie") = "шоколадный зефир" %> Pada contoh sebelumnya, kunci tipe1 dan tipe2 akan dimusnahkan dan nilainya akan hilang. Mycookie sekarang akan berisi nilai cokelat marshmallow. Anda juga dapat memeriksa keberadaan kunci tertentu dengan cara berikut: <% = Response.Cookies("myCookie").HasKeys %> Jika TRUE ditampilkan, maka kunci seperti itu ada, dalam kasus FALSE - tidak. Tanggapan.Metode TulisRespon.Tulis variabel_atau_nilai Parameter:
Contoh berikut menunjukkan cara kerja metode Response.write untuk mencetak pesan ke klien. Saya hanya akan memberitahu Anda:<%Response.write "Привет всем!!!"%>Dan namamu<%Response.write(Request.Form("name"))%> Contoh berikut menambahkan tag HTML ke halaman web. Karena metode ini tidak dapat berisi kombinasi %>, kami menggunakan urutan %\>. Jadi contoh skrip: <% Response.write " " %>Outputnya akan menjadi baris: Respon.Metode pengalihanResponse.Redirect URL (URL - Uniform Resource Descriptor) Parameter:
Komentar: Setiap kejadian metode ini antara tag Dan halaman web akan diabaikan. Metode ini hanya dapat digunakan di header halaman HTML. Metode ini akan meneruskan header ke browser jika parameter URL objek dihilangkan dalam bentuk berikut: HTTP/1.0 302 Objek Dipindahkan URL Lokasi Respon. Metode akhirRespon Selesai Komentar: Jika properti Response.Buffer telah disetel ke TRUE, maka memanggil metode Response.End akan menghapus buffer, mendorong data keluar darinya ke klien. Jika Anda tidak ingin menampilkan data kepada pengguna, Anda harus memanggil metode berikut: <% Response.Clear Response.End %> Respon. Metode AddHeaderMetode AddHeader menambahkan header HTML dengan nilai tertentu. Metode ini selalu menambahkan header baru ke respons ke browser klien. Metode ini tidak menggantikan header yang ada dengan yang baru. Judul yang ditambahkan tidak dapat dihapus. Metode ini hanya digunakan untuk tugas "lanjutan". Response.AddHeader variabel_name, nilai Parameter:
Catatan:Agar metode berfungsi dengan benar, nama_variabel tidak boleh berisi karakter garis bawah (_). Set ServerVariables menginterpretasikan garis bawah sebagai tanda hubung di header. Misalnya, skrip berikut memaksa server untuk menemukan parameter dari header HTML yang disebut MY-HEADER. <% Requset.ServerVariables("HTTP_MY_HEADER") %> Karena protokol HTTP mengharuskan semua parameter header diteruskan sebelum awal isi halaman HTML, Anda harus memanggil metode AddHeader dalam skrip Anda sebelum deskripsi dimulai. ... . Ada satu pengecualian. Jika nilai properti Buffer disetel ke true (benar), maka Anda dapat menulis AddHeader kapan saja dalam skrip, tetapi sebelum panggilan pertama ke metode Flush. Jika tidak, memanggil metode AddHeader akan menimbulkan kesalahan. Dua file .asp berikutnya menunjukkan poin terakhir. <% Response.AddHeader "Внимание!", "Текст сообщения об ошибке"%> teks Anda di halaman Dalam contoh ini, halaman tidak disangga. Script berfungsi namun AddHeader dipanggil sebelum server menghasilkan output HTML ke klien. <% Response.Buffer = true %> ini dia beberapa informasi halaman Anda...<%Response.AddHeader "Внимание!", "сообщение об ошибке"%> <%Response.Flush%> <%Response.Write("некий текст")%> Dalam contoh kedua, halaman disangga dan, sebagai hasilnya, server tidak mengirim teks ke klien hingga skrip itu sendiri berakhir atau hingga metode Flush ditemukan. Anda dapat menggunakan metode ini untuk mengirim beberapa salinan dari beberapa parameter header dengan nilai yang berbeda, seperti header WWW-Authenticate. Respons Metode.AppendToLogMetode AppendToLog menambahkan baris ke akhir file log server web. Anda dapat memanggil metode ini sebanyak yang Anda butuhkan. Setiap kali metode dipanggil, string yang Anda tentukan akan ditulis ke file laporan server. Response.AppendToLog nilai Parameter:
Catatan:Untuk menggunakan fitur ini, Anda harus mengaktifkan opsi Kueri URI di panel "Properti Pencatatan Lanjutan" untuk server web ini di IIS. Respon.MetodeBinaryWriteMetode BinaryWrite memungkinkan Anda untuk menulis informasi yang ditentukan ke output HTTP saat ini tanpa konversi karakter apa pun. Metode ini berguna untuk menampilkan informasi non-string, seperti data biner yang diperlukan oleh suatu aplikasi. Respon.BinaryWrite data Parameter:
Jika Anda memiliki objek yang menghasilkan larik byte, Anda dapat menggunakan panggilan berikut ke metode ini untuk meneruskan larik itu ke beberapa aplikasi yang berjalan di mesin klien. <% Set BinGen = Server.CreateObject(My.BinaryGenerator) Pict = BinGen.MakePicture Response.BinaryWrite Pict %> Tanggapan. Metode yang JelasMetode Clear menghapus semua output HTML yang di-buffer. Namun, metode ini tidak menghapus informasi header dari buffer. Anda dapat menggunakan metode ini untuk mengelola kesalahan. Namun, metode ini akan menghasilkan kesalahan jika properti Response.Buffer tidak benar. Properti Response.CacheControlProperti ini menimpa nilai default. Saat Anda menyetel properti ke Publik, server proxy dapat menyimpan output yang dihasilkan oleh ASP. Response.CacheControl [= header kontrol cache] Parameter:
Respon. Properti CharSetProperti CharSet memungkinkan Anda untuk menambahkan nama tabel kode karakter (misalnya, WINDOWS-1251) ke header HTML, string tipe konten (tipe konten). Response.CharSet codetable_name Parameter:
Untuk halaman ASP yang tidak menggunakan properti Response.Charset, parameter "tipe konten" di header akan menjadi: tipe konten:teks/html Jika file ASP berisi perintah <%Response.Charset("Windows-1251")%> kemudian di header bidang tipe konten akan terlihat seperti tipe konten:teks/html; charset=Windows-1251 Komentar: Fungsi ini menyisipkan string apa pun ke dalam header dan tidak memeriksa apakah sudah benar. Jika halaman berisi beberapa tag Response.Charset, maka setiap tag berikutnya akan mengganti nilainya dengan nilainya sendiri. Properti Response.ContentTypeProperti ContentType memungkinkan Anda untuk menentukan tipe (tipe) konten file HTML. Jika properti ini tidak digunakan, defaultnya adalah teks/html. Response.ContentType [=content_type] Parameter:
Contoh berikut mengilustrasikan pengaturan tipe konten ke Format Definisi Saluran (Saluran Tekan). <% Response.ContentType = "application/x-cdf" %> Contoh kedua menunjukkan pengaturan properti ke nilai yang paling umum diketahui. <% Response.ContentType = "text/HTML" %> <% Response.ContentType = "image/GIF" %> <% Response.ContentType = "image/JPEG" %> Respon.Kedaluwarsa propertiProperti Expires menentukan lamanya waktu hingga halaman HTML yang di-cache oleh browser dianggap valid (kedaluwarsa). Jika pengguna meminta halaman yang di-cache dari browser yang belum kedaluwarsa, browser mengembalikannya langsung dari cache-nya. Tanggapan.Kedaluwarsa [=angka] Parameter:
Komentar: Jika properti ini disetel lebih dari sekali pada halaman, maka nilai terkecil yang digunakan. Response.ExpiresAbsolute propertyProperti ExpiresAbsolute menentukan waktu dan tanggal setelah halaman HTML yang di-cache oleh browser dianggap kedaluwarsa. Jika pengguna meminta halaman yang di-cache dari browser yang belum kedaluwarsa, browser mengembalikannya langsung dari cache-nya. Jika waktu ditentukan (dan tanggal ditentukan), maka "periode retensi" halaman berakhir pada tengah malam hari itu. Jika waktu atau tanggal tidak ditentukan, maka nilai akan ditetapkan sesuai dengan hari dan waktu skrip dijalankan. Response.ExpiresAbsolute [= [tanggal] [waktu]] Parameter:
Komentar: Jika properti ini ditentukan lebih dari sekali per halaman, maka waktu kedaluwarsa "periode retensi" dianggap paling cepat dari semua nilai yang ditentukan. <% Response.ExpiresAbsolute = #May 31,1998 13:30:15# %> Response.IsClientConnected propertiProperti ini adalah nilai hanya-baca, yang berarti tidak ada nilai yang dapat diberikan ke properti ini. Properti ini menunjukkan apakah klien terhubung atau belum terhubung ke server, seperti yang didefinisikan di bagian terakhir dari Response.Write. Respon.IsClientConnected() Komentar: Properti ini memungkinkan Anda untuk menentukan kapan pengguna terhubung dan ketika dia terputus dari server. Misalnya, lamanya waktu antara saat server merespons dan saat klien membuat permintaan memberikan keyakinan bahwa klien masih terhubung dan masuk akal untuk terus mengeksekusi skrip. <% "посмотрим, подключен ли пользователь If Not Response.IsClientConnected Then "получаем номер сессии и закрываем сессию Shutdownid = Session.SessionID "подготовка к закрытию сессии Shutdown(Shutdownid) End If %> Response.Pis propertiProperti ini memungkinkan Anda untuk menambahkan nilai bidang label foto ke header respons. Respon.PICS(PICSLabel) Parameter
Untuk file ASP termasuk: <% Response.PICS("(PICS-1.1 label pada peringkat " & chr(34) & "1997.01.05T08:15-0500" hingga "1999.12.31T23:59-0000" (v 0 s 010 n 0))%> Header berikutnya akan dibuat PICS-label:(PICS-1.1 label pada peringkat "1997.01.05T08:15-0500" hingga "1999.12.31.T23:59-0000" (v 0 s 0 1 0 n 0)) Komentar: Properti ini memungkinkan Anda untuk menyisipkan baris apa pun di header, terlepas dari apakah baris tersebut valid atau tidak. Jika halaman berisi banyak tag yang berisi Response.PICS, maka setiap tag berikutnya akan menggantikan nilai yang sebelumnya. Respon.Properti statusProperti ini memungkinkan Anda untuk menentukan string status yang dikembalikan oleh server. Nilai status ditentukan dalam spesifikasi HTTP. Response.Status = state_description Parameter
Contoh berikut menunjukkan pengaturan status: <% Response.Status = "401 Unauthorized" %> Komentar: Gunakan properti ini untuk mengubah string yang dikembalikan oleh server. |