แสดงบทความที่มีป้ายกำกับ net/http แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ net/http แสดงบทความทั้งหมด

วันพุธที่ 24 มิถุนายน พ.ศ. 2558

Download & Read Manga via Golang

เวลาอ่านกาตูน Online ผมอ่านอยู่ไม่กี่เว็บผมเลยเขียน program สำหรับ ดูด กาตูนเหล่านั้นมาลงไว้ที่เครื่องแล้วค่อยอ่านทีหลัง https://github.com/neverlock/Mangafox
แต่ดูดมาก็เป็นภาระ ต้องมาหาโปรแกรมเปิดอ่าน ปรกติแล้วผมใช้ Ehon ผมว่าตัวนี้เป็นตัวอ่าน manga บน MAC ที่ดูดีที่สุดละ แต่บางทีก็ขี้เกียจเปิดมันเพราะต้อง Import Dir รูปเข้าไปให้มันก่อน



จากความรำคาญเลยเขียน golang web service สำหรับอ่านกาตูนอีกตัว โดย hack net/http ใน function ที่ทำงาน serv static file เอามาแสดงผลให้แสดง tag img เพื่อ แสดงรูปซะเลย

ใน function main เขียนแค่ บรรทัดเดียว



package main

import (
        "log"
        "github.com/neverlock/manga_net/http"
)


func main() {
        log.Println("Service at :8080")
        log.Fatal(http.ListenAndServe(":8080", http.FileServer(http.Dir("./"))))
}

สั่ง go get github.com/neverlock/manga_net/http
จากนั้นสั่ง go build
แล้วเอา binary ที่ได้ไปวางไว้ใน Dir ที่ load manga มาไว้แล้วสั่ง run แล้วเปิดดูที่ web browser ได้เลย

การแสดงผลจะเหมือนกับการ serv static file แต่ถ้าใน Dir มีรูปมันจะแสดงรูปแทนที่จะเป็น link 



วันอาทิตย์ที่ 22 มีนาคม พ.ศ. 2558

Simple Form post with Golang

วันนี้ขอนำเสนอวิธีการ ส่ง HTTP request เรื่องการ post form การ post form นั้นจะมีการส่งค่าตรงแปรต่างๆเข้าไปด้วย ในภาษา Go นั้น package net/http มี function PostForm ให้เราใช้ได้ง่ายๆเลย
ตัวอย่างง่ายๆตามนี้เลย


package main

import ("net/http"
        "log"
        "net/url"
        "fmt"
        )

func main()  {

 postUrl := "https://www.somesite.com/login"

 values := make(url.Values)

 values.Set("user", "neverlock")
 values.Set("pwd", "password")

 // Submit form
 resp, err := http.PostForm(postUrl, values)
 if err != nil {
         log.Fatal(err)
 }
 fmt.Printf("[%d] %s\n",i,resp.Status)
 defer resp.Body.Close()

}

สำหรับวิธีง่ายๆในการที่จะหาว่า มีค่าอะไรบ้างที่จะต้องส่งไปในการ post form แต่ละครั้งก็ให้ใช้ chrome หรือ firefox แล้วเปิด developer tool ขึ้นมาจากนั้น post form ไปเลยเพื่อดูว่ามันส่งอะไรมั่งจะได้ไม่ต้องไปเสียเวลานั่งไล่ code html ดูในส่วนของ Form Data ได้เลยว่า formpost นั้นๆส่งค่าอะไรไปบ้าง