Code Experience : Using IHTTPHandler on C# .NET 2005
kata temanku Aldian (yang seorang programmer sejati dari IF-ITB ‘96) "Coding itu baik untuk kesehatan!".kalimat seperti itu rasanya seperti hiperbolik dan juga mengandung sindiran, bagi kami (IF96′ers). Jadi teringat tayangan televisi tentang Ibu Sisca yang ahli membuat kue, yang selalu di dapur(walaupun tidak terlalu sering) untuk mencoba resep baru.hmm .. sama persis… hanya satu pesan yang aku bisa petik "practice make perfect!".yukkk… berlatih!!
kebetulan sekarang lagi kena kerjaan untuk DRM download via http untuk forward lock, combine & separate delivery. sudah di explore dengan PHP, cukup susah dan ribet mengurusi masalah pengiriman header contentnya. sudah berhasil mengirimkan jpg,gif,mid namun gagal kalau mengirimkan mp3. dengan sedikit keberuntungan ada source code C#.NET 2003 untuk men-customize Handler HTTP. jadi kita bisa buat extension handler untuk *.xxx di web server (so pasti IIS). pasti bisa dibuat untuk handler emulasi file .dm (forwardlock) dan konco-konco drm (.dd,.dcf,.dr).
case studiesnya : http://serverku/OMAHandler/indonesiaraya.dm
Ini Langkah-langkahnya :
#1 buat solution empty web site (DrmHandlers)
#2 buat new project Class Library di solution yang sama dengan Nama OMADrmHandlers
#3 Tambahkan reference : System.Web
#4 Rename class1.cs dengan forwardlock.cs
#5 Inherit class forward lock dari class IHTTPHandler dengan sedikit perubahan pada code :
—————————————————————————
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
namespace OMADrmHandlers {
public class forwardlock : IHttpHandler
{
}
}
——————————————————————————————-
#6 sorot dan klik mouse anda pada text "IHttpHandler" akan muncul pop-up untuk option : explicitly implement Interface ‘IHttpHandler’ secara otomatis code akan bertambah method-method yang ada di class IHttpHandler. dan jangan lupa edit untuk keperluan forwardlock hasil generate dan editnya akan seperti :
—————————————————————————
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
namespace OMADrmHandlers
{
public class forwardlock : IHttpHandler
{
#region IHttpHandler Members
{
get { return false
; }
}
void IHttpHandler.ProcessRequest(HttpContext
context)
{
context.Response.ContentType =
"application/vnd.oma.drm.message;boundary=boundary1";
context.Response.Write("–boundary1" + "\r\n");
context.Response.Write("Content-Type:audio/mpeg" + "\r\n");
context.Response.Write("Content-Transfer-Encoding:binary" + "\r\n\r\n");
context.Response.WriteFile("test.mp3");
context.Response.Write("\r\n–boundary1–" + "\r\n"
);
#endregion } }
}
——————————————————————————————-
#7 Edit Konfigurasi web.config
——————————————————————————————–
<?xml version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<httpHandlers>
<!– Simple Handler –>
<add verb="*" path="*.dm" type="OMADrmHandlers.forwardlock, OMADrmHandlers"/>
</httpHandlers>
<compilation debug="true"/></system.web>
</configuration>
——————————————————————————————–
#8 Compile & Build dll
#9 Add Reference pada website project –> pilih projects–>OMADrmHandler –> Run Website dan gunakan openwave simulator : akses http://localhost:1286/DrmHandlers/indonesiaraya.dm
hasilnya : file midi berhasil dimainkan disimulator.
selamat mencoba!.
sekarang waktunya mencari hape yg support mp3 untuk test forwardlock dengan isi mp3.
October 22nd, 2008 at 9:45 am
Interesting to know.