Seharian dengan NSMutableURLRequest

Yep. Udah lama gak ngeblog. Tadinya juga gak mau nulis blog sih, cuma karena kejadian seharian ini, gw jadi ingin mencurahkan penatnya pikiran gw ke sini biar gw gak melupakan betapa sulitnya memulai mencari sesuap nasi.

Karena suatu dan lain hal, gw mencoba explorasi bahasa pemrograman baru : Cocoa. Cocoa ini sebenernya sebuah Objective-C (sekarang udah versi 2.0) turunan dari C/C++. Nah, gw berusaha membuat sebuah program sangat sangat sederhana, yakni koneksi ke server dan melakukan pengiriman pesan. Ya. Seharusnya sederhana.

Namun, seperti kata pepatah, “Kalo gak ada noda gak belajar..”, I went by the book. Gw mengikuti pepatah itu, dan gw bersakit2an berusaha membuat program kecil itu selama 12 jam bersama Ocep dan Harbag di MIC saat orang lain udah libur lebaran.

Pertama – tama Ocep bikin serversidenya pake PHP (pake CI). Nah singkat cerita, kita berpegang pada konsep POST method dan kata Harbag sih semua akses lewat header aja. Oke, gw buat tuh di Cocoa kayak gini kira2

NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://url.com/CI"]]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setValue:username forHTTPHeaderField:@"username"];
[request setValue:password forHTTPHeaderField:@"password"];

Tapi ternyata gak bisa. Secara ajaib parameter username ama password yang diterima server adalah kosong. Aneh. Udah 3 jam berkutat dengan googlism gak nemu – nemu jawabannya. Akhirnya kepikir ditrap dulu headernya pake plugin FF : Live HTTP Headers. Gak ngaruh banyak rupanya. Akses lognya Apache, mayan membantu sih tapi masih kosong. Akhirnya coba lagi pake googlism copas code orang lain yang udah jadi. Masih gelap.
Akhirnya kita makan dulu pesen ke Farfalle Pasta di MIC.
Seudah makan, sekitar jam 9an, lanjut lagi koding ubek – ubek semua tool di atas dan google sana – sini akhirnya gw tercetus hal brilian. Gw coba kirim ke body nya instead ke header.

NSData *postData = [query dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
[request setHTTPBody:postData];

Tada!! Sukses deh!

PS : jangan percaya Ocep lagi deh buat PHP - PHP an... cape! Makan ati!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s