gofcgi

其他类别 2025-08-19

描述

Golang客户端,用于FastCGI ,支持连接池和易于使用。

游泳池用法

gofcgi/1.0.0", "REMOTE_ADDR": "127.0.0.1", "QUERY_STRING": "NAME=VALUE", "SERVER_NAME": "example.com", "SERVER_ADDR": "127.0.0.1:80", "SERVER_PORT": "80", "REQUEST_URI": "/index.php", "DOCUMENT_ROOT": "[PATH TO YOUR SCRIPT]", "GATEWAY_INTERFACE": "CGI/1.1", "REDIRECT_STATUS": "200", "HTTP_HOST": "example.com", "REQUEST_METHOD": "POST", // for post method "CONTENT_TYPE": "application/x-www-form-urlencoded", // for post } req.SetTimeout(5 * time.Second) req.SetParams(params) // set request body r := bytes.NewReader([]byte("name=lu&age=20")) req.SetBody(r, uint32(r.Len())) // call request resp, err := client.Call(req) if err != nil { return } // read data from response data, err := ioutil.ReadAll(resp.Body) if err != nil { return } log.Println("resp body:", string(data))">
 // retrieve shared pool
pool := fcgi . SharedPool ( "tcp" , "127.0.0.1:9000" , 16 )
client , err := pool . Client ()
if err != nil {
    return
}

// create a request
req := fcgi . NewRequest ()
params := map [ string ] string {
	"SCRIPT_FILENAME" : "[PATH TO YOUR SCRIPT]/index.php" ,
	"SERVER_SOFTWARE" : " gofcgi /1.0.0" ,
	"REMOTE_ADDR" :     "127.0.0.1" ,
	"QUERY_STRING" :    "NAME=VALUE" ,

	"SERVER_NAME" :       "example.com" ,
	"SERVER_ADDR" :       "127.0.0.1:80" ,
	"SERVER_PORT" :       "80" ,
	"REQUEST_URI" :       "/index.php" ,
	"DOCUMENT_ROOT" :     "[PATH TO YOUR SCRIPT]" ,
	"GATEWAY_INTERFACE" : "CGI/1.1" ,
	"REDIRECT_STATUS" :   "200" ,
	"HTTP_HOST" :         "example.com" ,

	"REQUEST_METHOD" : "POST" ,                              // for post method
	"CONTENT_TYPE" :   "application/x-www-form-urlencoded" , // for post
}

req . SetTimeout ( 5 * time . Second )
req . SetParams ( params )

// set request body
r := bytes . NewReader ([] byte ( "name=lu&age=20" ))
req . SetBody ( r , uint32 ( r . Len ()))

// call request
resp , err := client . Call ( req )
if err != nil {
    return
}

// read data from response
data , err := ioutil . ReadAll ( resp . Body )
if err != nil {
    return
}
log . Println ( "resp body:" , string ( data ))
下载源码

通过命令行克隆项目:

git clone https://github.com/iwind/gofcgi.git