gohttp 是一个 http 的文件服务器。因为是用 go 语言写的,所以加了一个 go 的抬头。之所以用 go 是因为发布起来是一个二进制文件,不同的平台都可以用,而且没有依赖问题,且稳定性也很好。
pjax简称页面ajax技术
在gohttp进行目录却换的时候,你会看到地址栏在变,但是页面却是局部刷新的。
各种文件的预览功能
所有常见的代码都可以直接在gohttp下预览,如果你用的是chrome浏览器的话,包括pdf,mp4,mp3都可以直接预览。
实时的目录zip打包下载
强大的体现在它是实时的,即使你马上在目录下新增了一个文件,点击目录zip下载的时候,这个文件也会出现在里面。
二维码支持
手机下载往往没有电脑下载这么容易,点点鼠标就可以了。但是有了二维码,手机也只用扫一扫就可以下载了。
苹果应用在线安装
iphone应用安装包的扩展名是ipa,但是你还必须有个额外的plist文件才行。以及生成一个itms-services开头的地址,gohttp直接把这些工作都做了,ipa的解析,plist以及下载页面的自动生成。同普通文件一样,只需要点击右侧的生成二维码,然后用iphone手机扫描下,iphone的应用就安装到了你的手机上。PS:坑爹的苹果,就不能像安卓一样简单一点吗
README文件的自动显示
像github网站上的项目,readme文件都会作为项目的介绍自动显示出来。gohttp也借鉴了一下。如果目录下有readme文件的话,就会自动预览出来。
文件上传
简单的文件上传也有着出色的表现,可以看到上传的进度,以及支持拖拽的方式上传文件。为了更方便的结合自动发布的功能,文件上传也有其相应的API,上传的时候也可是指定软件的版本号,存储结构参考了python,pypi官方的模式。
还有很多很多其他的特性
http basic auth认证,不同文件不同的icon,gzip支持,目录的整合显示.... 还有很多功能等待着你去发现和有能力的你去补充。
服务端 使用 创建一个Hello World服务 package main import ( "io" "net/http" ) func hello(w http.ResponseWriter, r *http.Request) { io.WriteString(w, "hello world\n") } func main() { http.HandleFunc("/hello"
Conn的goroutine 与我们一般编写的http服务器不同, Go为了实现高并发和高性能, 使用了goroutines来处理Conn的读写事件, 这样每个请求都能保持独立,相互不会阻塞,可以高效的响应网络事件。这是Go高效的保证。 Go在等待客户端请求里面是这样写的: c, err := srv.newConn(rw) if err != nil { continue } go c.
通过hello World Web服务器宣告你的存在 标准库存中的net/http包提供了多种创建HTTP服务器的方法,它还提供了一个基本路由器。 使用Go语言编写的基础HTTP服务器,程序清单如下: package main import ( "net/http" ) func helloWorld(w http.ResponseWriter, r *http.Request) { w.
上篇博文中简单介绍了Go HTTP的Server 和Client。本文介绍如何在HTTP中传递json格式的数据。 Server package main import ( "encoding/json" "fmt" "html" "io/ioutil" "log" "net/http" )
go http请求如果参数中带有"等特殊字符,参数传输可能会出现问题,所以传输前需要进行参数编码。 在 Golang 中有 net/url 包是用来专门处理 URL 的, net/url 包有完整的URL解析函数,编码函数,解编码函数。 URL 解析 解析 URL 可以使用 url.Parse() 函数。这个函数功能类似于 PHP 下的 parse_url() 函数。 import ( "
一,问题起因 线上server to server的服务,出现大量的TIME_WAIT。用netstat发现,不断的有连接在建立,没有保持住连接。抓TCP包确认request和response中的keepalive都已经设置,但是每个TCP连接处理6次左右的http请求后,就被关闭。 就处理该问题的过程中,查看了一下http client的部分源码。 二,HTTP Cl
使用 go http 包的注意点 很多人最开始使用go的http包的时候,都会找一个示例,以下面代码为例 res, err := http.Get(url) if err != nil { return false } return res.StatusCode == http.StatusOK 这里面其实有两个错误。 问题1 超时 我们实际去看
最近在使用go向一个网站发起https请求时报异常:x509: certificate has expired or is not yet valid,将URL复制到浏览器也显示证书不可信任,但其实是能请求通过的。这个时候就需要设置client信任所有证书,具体如下: package main import ( "fmt" "net/http" "crypto/tls"
// main.go文件 package main import ( "fmt" "log" "net/http" ) func main() { http.HandleFunc("/", index) //设置访问的路由 err := http.ListenAndServe(":80", nil) //设置监听的端口 if err != nil {
在 Go 中,我们可以直接使用 Go 自带的 net/http 包对 HTTP 请求参数进行解析。比如看下面一个简单的用例: // GET /v1/users?page=1&per_page=20&is_member=true func ListUsers(rw http.ResponseWriter, r *http.Request) { page, err := strconv.Par
一、首先什么是HTTP3? 虽然 HTTP/2 解决了很多之前旧版本的问题,但是它还是存在一个巨大的问题,主要是底层支撑的 TCP 协议造成的。 上文提到 HTTP/2 使用了多路复用,一般来说同一域名下只需要使用一个 TCP 连接。但当这个连接中出现了丢包的情况,那就会导致 HTTP/2 的表现情况反倒不如 HTTP/1 了。 因为在出现丢包的情况下,整个 TCP 都要开始等待重传,也就导致了后
首先是获取form-data内容 func ResendFormFile(r *http.Request, URL string) { data := r.FormValue("data") formFile, fileHeader, err := r.FormFile("pic") if err != nil { return } _, status := RequestPost(
一、基本介绍 在net/http包中提供了一个被称为Client的结构体,该结构体位于库文件的src/net/http/client.go文件中,常见使用场景一般是做go web开发过程中对接第三方的api接口(常见的比如微信授权获取手机号码等),爬虫领域的使用 在Client这个结构体中已经帮我们实现了比较常见的Get和Post请求,如果你要使用Delete等别的请求方式就要使用原生的http.
最近在做开放平台项目,需要用到HTTP请求,对HTTP请求做了简单封装。 封装后的代码可以实现: Get提交 POST提交(表单) POST提交(json) POST提交(文件上传) 完整代码如下: package common import ( "bytes" "encoding/json" "io" "io/ioutil" "mime/multipart" "net/http"
net/http import "net/http" Go语言提供了HTTP客户端和服务端的实现,也就是net/http包 我们可以通过包中的Get,Head,Post,PostForm函数发出HTTP/HTTPS请求 package main import ( "fmt" "io/ioutil" "net/http" ) func main{ response, err
写了一下go发送http请求常用的几种方法 package main import ( "net/http" "io/ioutil" "fmt" "strings" "net/url" "bytes" "encoding/json" ) func main() { urls := "http://www.baidu.com/" var data = map[string]in
package main import ( "bytes" "fmt" "io" "log" "net" "net/url" "strings" ) func main() { log.SetFlags(log.LstdFlags|log.Lshortfile) l, err := net.Listen("tcp", ":8081") if err
怎么就不是原创了… http.HandleFunc("/post", func(writer http.ResponseWriter, request *http.Request) { // 检查是否POST请求 if request.Method != "POST" { writer.WriteHeader(405) return }
go 学习笔记之http请求 今天学习一下,如何用原生的http包优雅的发起http请求。 先准备服务端接口,这里使用的是gin框架 package main import ( "github.com/gin-gonic/gin" "io/ioutil" "log" "net/http" ) var logger = log.Default() func main() { engi
导入 import ( “bytes” “crypto/tls” “encoding/json” “fmt” “io/ioutil” “log” “net/http” “reflect” “time” ) func main(){ type User struct { Username string `json:"username"` Password string `json:"passwo
1.接口描述 该API的功能是上传图片到云端。 图片要求 格式为 JPG(JPEG),BMP,PNG,GIF,TIFF 宽和高大于 8px,小于等于4000px 小于等于 5 MB 请求方式 POST 请求 URL https://cloudapi.linkface.cn/resources/upload_image 2.请求参数 字段 类型 必需 描述 api_id string 是 API
我们先来看看最简单的本地静态文件服务配置示例: server { listen 80; server_name www.test.com; charset utf-8; root /data/www.test.com; index index.html index.htm; } 就这些?
服务器 用于监听服务器中每个客户机的线程在名为OyenteCliente(ClientListener)的类中实现,每个客户机中监听服务器petitios的线程在OyenteServidor(ServerListener)中实现。 客户监听器 非常感谢!
我试着设置nginx来服务我的node.js应用程序静态文件。问题是,当我试图得到我的文件时,我的状态是403禁止的。 当我尝试下载一个文件从 /root/appJs/public/css/style.css我写http://sitename.com/css/style.css我retive 403禁忌状态。我已经在一些论坛上寻找解决方案,但没有
我试图让我的Django应用程序运行只使用uWSGI。这个项目不是那么大,所以我真的更愿意把nginx排除在外。 我只是不能得到uWSGI显示我的静态文件虽然。我已经浏览了多次设置,但找不到问题。 我将STATIC_URL设置为'module/STATIC/'STATIC_ROOT设置为'/module/STATIC_files/'(我在某处读到它们不应该是相同的) 还有我的uwsgi。ini看起
问题内容: 我有一个URL,用于保存我的工作中的一些项目,它们大部分是MDB文件,但也有一些JPG和PDF。 我需要做的是列出该目录中的每个文件(已完成)并为用户提供下载它的选项。 使用PHP如何实现? 问题答案: 要读取目录内容,可以使用readdir()并使用脚本(在我的示例中)来下载文件 在其中,您可以强制浏览器发送下载数据,并使用basename()来确保客户端不会传递其他文件名,例如
我正在从sftp服务器读取文件,并使用Spring Batch Framework将该文件加载到数据库中。下面是我的代码,但我遇到了一个错误 代码: 错误:
部署配置文件是 Puppet 最常见的用途之一。许多服务都需要一些配置文件, 你可以让 Puppet 使用 file 资源将这些配置文件推送到客户端,如下面的代码所示: file { "/opt/nginx/conf.d/app_production.conf": source => "puppet:///modules/app/app_production.conf", } source