@pittaya แนะนำผมมาหลายครั้งว่าให้ใช้ cURL แทน wget หรือการเขียนโปรแกรมมายิง HTTP request เอง
วันก่อนได้มีโอกาสลองกับ server ของตัวเองที่ office (เป็น Red Hat Enterprise Linux 5) แล้วก็พบว่ามันง่ายดี ^^
การลง cURL ใน RHEL นี่เหมือนมันจะมี binary ให้ load อยู่แล้ว แต่ลงกดๆ ใน page แล้วงงว่าอันไหนใหม่สุด ก็เลย load source code ไป build ตาม http://curl.haxx.se/docs/install.html เลย (งงตรงที่ readme ที่ได้จาก package ไม่บอกวิธี build แฮะ) ลงเสร็จเราก็จะได้ curl command ไว้ใช้ครับ
สำหรับ GET ก็ง่าย แค่สั่ง
$> curl <URL>
แล้ว response จะถูก display ออกมาเลย ไม่เหมือน wget ที่จะ save ลง file เป็นชื่อ path สุดท้ายเสมอ
$> curl http://localhost:8080/json/quote/FB {"bid":10,"ask":10,"time":18:48.41} $>
เราจะใช้ -> redirect ลง file ก็ได้เหมือนกัน สะดวกดี
$> curl http://localhost:8080/json/quote/FB -> fb.txt % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 6281 0 6281 0 0 803k 0 --:--:-- --:--:-- --:--:-- 876k $> cat fb.txt {"bid":10,"ask":10,"time":18:48.41}
สำหรับ POST ก็ต้องเพิ่ม parameter สำหรับใส่ data และระบุว่า Content-type แบบไหนเข้าไป ซึ่ง ที่ผมใช้เลือกเป็น application/json
$> curl -X POST -H 'Accept: application/json' -H 'Content-type:<Content-type>' -d '<data>' <URL>
$> curl -X POST -H 'Accept: application/json' -H 'Content-type:application/json' -d '{"request":"GOOG","compare":"AAPL"}' http://localhost:8080/json/ts {"item":"GOOG",data:["bid":10,"ask":10,"time":18:48.41],"item":"AAPL",data:["bid":1,"ask":1,"time":18:48.41]} $>
ส่วนตัว cURL เมื่อเทียบกับ wget ผมรู้สึก cURL แม้คำสั่งจะยาวกว่า แต่ก็ยืดหยุ่นกว่า ดูผลง่ายกว่าและ save ลง file เป็นชื่อที่ต้องการได้ครับ