golang_nethttp
package main import (
"encoding/json"
"fmt"
"log"
"net/http"
)
//<link rel="stylesheet" href="media/index.css">
func indexHandler(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w,r,"index.html") }
//http://127.0.0.1:8000/submit
func submitHandler(w http.ResponseWriter, r *http.Request) {
//获取post json请求转换为map
err := r.ParseForm()
if err != nil {
log.Fatal("parse form error ", err)
}
// 初始化请求变量结构
formData := make(map[string]interface{})
// 调用json包的解析,解析请求body
json.NewDecoder(r.Body).Decode(&formData) //log.Println("req form: ", formData)
for key, value := range formData {
log.Println("key:", key, " => value :", value)
}
fmt.Fprintf(w, "submitHandler") }
func main() {
http.HandleFunc("/", indexHandler)
http.HandleFunc("/submit", submitHandler)
http.Handle("/media/",http.StripPrefix("/media/",http.FileServer(http.Dir("./media"))))
println("web server started sucess")
http.ListenAndServe(":8000", nil) }
//media/index.css
body {
background-color:#d0e4fe;
}
h1 {
color:orange;
text-align:center;
}
p {
font-family:"Times New Roman";
font-size:20px;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
<link rel="stylesheet" href="media/index.css">
</head> <body> <h1>CSS 实例!</h1>
<p>这是一个段落。</p> </body>
</html>
package main import (
"encoding/json"
"fmt"
"log"
"net/http"
"text/template"
)
//<link rel="stylesheet" href="media/index.css">
func indexHandler(w http.ResponseWriter, r *http.Request) {
// 加载html模板
t, _ := template.ParseFiles("index.html")
// 准备模板数据
// data := map[string]interface{}{"userName": "irene", "count": 123}
// 渲染模板数据并相应页面
t.Execute(w, nil)
//http.ServeFile(w,r,"index.html") }
//http://127.0.0.1:8000/submit
func submitHandler(w http.ResponseWriter, r *http.Request) {
//获取post json请求转换为map
err := r.ParseForm()
if err != nil {
log.Fatal("parse form error ", err)
}
// 初始化请求变量结构
formData := make(map[string]interface{})
// 调用json包的解析,解析请求body
json.NewDecoder(r.Body).Decode(&formData) //log.Println("req form: ", formData)
for key, value := range formData {
log.Println("key:", key, " => value :", value)
}
fmt.Fprintf(w, "submitHandler") }
func main() {
http.HandleFunc("/", indexHandler)
http.HandleFunc("/submit", submitHandler)
http.Handle("/media/",http.StripPrefix("/media/",http.FileServer(http.Dir("./media"))))
println("web server started sucess")
http.ListenAndServe(":8000", nil) }
golang_nethttp的更多相关文章
随机推荐
- 实验一C语言开发环境使用和数据类型·运算符·表达式
#include<stdio.h> int main(){ printf(" o \n"); printf("<H>\n"); prin ...
- 0627.selenium请求库*2
昨天已经介绍了关于selenium的简单基本基本使用--通过两种方式自动打开和关闭谷歌浏览器今天,我们将介绍的模块将是在昨天打开谷歌浏览器的基础上,打开某一个电商平台,并搜索某一个产品,利用前面学的知 ...
- vue框架回顾
- 了解ASP(二)
变量 ASP中的变量有普通变量,Session变量,Application变量. 变量的生存期 在子程序外声明的变量可被 ASP 文件中的任何脚本访问和修改. 在子程序中声明的变量只有当子程序每次执行 ...
- 肖sir ___性能测试____多线程
一.理论 (一) (1)多线程是Python程序中实现多任务的一种方式(2)线程是程序执行的最小单位. (3)同属一个进程的多个线程共享进程所拥有的全部资源. (二)进程和线程对比 (1)关系对比: ...
- vue2的反向代理
// 在vue.config.js中的配置项配置 devServer: { proxy: { // 当我们的本地的请求 有/api的时候,就会代理我们的请求地址向另外一个服务器发出请求 '/api': ...
- HUAWEI--配置单臂路由
HUAWEI--配置单臂路由 1.在LSW1中创建vlan10和vlan20 [LSW1]vlan batch 10 20 2.接口Eth0/0/2配置trunk,放行vlan10和20,接口Eth0 ...
- sort使用
用sort对结构体进行排序步骤如下 1.先写c++头文件 # include<iostream># include<algorithm> //这个是sort的头文件 using ...
- Windows下安装和使用Masscan
http://zone.secevery.com/article/1098 0x00 前言Masscan号称最快的互联网端口扫描器,本文来探测一下Masscan在Windows下的安装和使用.mass ...
- 使用Libusb测试USB device
一. 先准备好测试工具 -- Libusb: 在Linux中使用的话: 首先从 http://www.libusb.org/官网中下载libusb 然后解压之后./configure --> m ...