go 登录get和postpost和get请求的区别别

Golang实现http接口调用及web数据抓取[get post模式] - 为程序员服务
Golang实现http接口调用及web数据抓取[get post模式]
& &继续扩展我的golang服务端,这边有些数据库是没有权限的,对方给了我webservices的接口,针对异常的数据,我要去抓数据,再次分析,golang貌似没有python那么多的模拟浏览器访问的模块,还好默认的http就支持。 功能一点都不必urllib2 差。。。
& &正题!!! 这里是通过golang提供的net/http模块, http.NewRequest来进行数据抓取。 他能实现python下的urllib2的功能 !
原理不多说了,大家直接套用这两个get post的例子吧。
可以任意的加header头,比如怎么加一个浏览器的标识 !
client := &http.Client{]
req, err := http.NewRequest(&POST&, &http://127.0.0.1&, bytes.NewReader(postData))
req.Header.Add(&User-Agent&, &无敌浏览器&)
resp, err := client.Do(req)
defer resp.Body.Close()下面是完整的例子,可以加更多的Header
#http://xiaorui.cc
package main
&net/http&
&io/ioutil&
func main() {
client := &http.Client{}
reqest, _ := http.NewRequest(&GET&, &http://127.0.0.1/&, nil)
reqest.Header.Set(&Accept&,&text/html,application/xhtml+xml,application/q=0.9,*/*;q=0.8&)
reqest.Header.Set(&Accept-Charset&,&GBK,utf-8;q=0.7,*;q=0.3&)
reqest.Header.Set(&Accept-Encoding&,&gzip,deflate,sdch&)
reqest.Header.Set(&Accept-Language&,&zh-CN,q=0.8&)
reqest.Header.Set(&Cache-Control&,&max-age=0&)
reqest.Header.Set(&Connection&,&keep-alive&)
reqest.Header.Set(&User-Agent&,&chrome 100&)
response,_ := client.Do(reqest)
if response.StatusCode == 200 {
body, _ := ioutil.ReadAll(response.Body)
bodystr := string(body);
fmt.Println(bodystr)
reqest, _ = http.NewRequest(&POST&,&http:/127.0.0.1/&, bytes.NewBufferString(data.Encode()))
respet1,_ := http.NewRequest(&POST&,&http://127.0.0.1/&,url.Values{&key&:&Value&})
reqest1.Header.Set(&User-Agent&,&chrome 100&)
client.Do(reqest1)
我们再来测试下 post获取数据 !
#http://xiaorui.cc
package main
&net/http&
&io/ioutil&
func main(){
func get(){
response,_:=http.Get(&http://127.0.0.1/&)
defer response.Body.Close()
body,_:=ioutil.ReadAll(response.Body)
fmt.Println(string(body))
if response.StatusCode == 200 {=
fmt.Println(&ok&)
fmt.Println(&error&)
func post(){
//resp, err :=
http.PostForm(&http://127.0.0.1&,
url.Values{&name&: {&ruifengyun&}, &blog&: {&xiaorui.cc&},
&aihao&:{&python golang&},&content&:{&nima,fuck &}})
我们用http加上golang的runtime可以搞成类似 ab的压力测试工具,我昨天写了一个版本,但是在压倒3k以上的链接数的时候,会出现不少的error,原因可能是linux本身没有做tcp的优化,获取是对端的tornado没有用@gen,所以效率跟不上去,我的压力程序没有做defer panic处理。 今天看了下 golang的 gb压力测试工具,发现主要的思路是相同的,但是很多的细节没有做处理,比如channel的同步是用那种for &-c 的土方法实现的。
我的程序是有问题,但是老外有大牛已经构建了一套类似ab的工具,性能差不多,但是这个支持更多的选项和参数,包括代理,基本认证,请求头header信息,长链接,post,gzip压缩,开启几个cpu核心,cookie的插入。
go /parkghost/gohttpbench
go build -o /parkghost/gohttpbench
用golang实现的搞并发的压力测试工具 !
原文:xiaoruicc
&-A=”": Add Basic WWW Authentication, the attributes are a colon separated username and password. & & & &
&-C=[]: Add cookie, eg. ‘Apache=1234. (repeatable) & & & & & & & & & & & & & & & & & & & & & & & & & & &
&-G=4: Number of CPU & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
&-H=[]: Add Arbitrary header line, eg. ‘Accept-Encoding: gzip’ Inserted after all normal header lines. (r
epeatable) & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
&-T=”text/plain”: Content-type header for POSTing, eg. ‘application/x-www-form-urlencoded’ Default is ‘te
xt/plain’ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
&-c=1: Number of multiple requests to make & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
&-h=false: Display usage information (this message) & & & & & & & & & & & & & & & & & & & & & & & & & & &
&-i=false: Use HEAD instead of GET & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
&-k=false: Use HTTP KeepAlive feature & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
&-n=1: Number of requests to perform & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
&-p=”": File containing data to POST. Remember also to set -T & & & & & & & & & & & & & & & & & & & & & &
&-r=false: Don’t exit when errors & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
&-t=0: Seconds to max. wait for responses & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
&-u=”": File containing data to PUT. Remember also to set -T & & & & & & & & & & & & & & & & & & & & & &
&-v=0: How much troubleshooting info to print & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
&-z=false: Use HTTP Gzip feature & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
具体的用法:
咱们在看看nginx服务端的日志情况:
专注于运维平台化、运维自动化、python运维
原文地址:, 感谢原作者分享。
您可能感兴趣的代码如果提交请求纯粹只是从服务器端获取数据而不是进行;比如:搜索引擎的查询(http://www.go;比如:修改服务器上数据库中的数据;发送一封邮件;;另一个要考虑因素是安全性;若符合下列任一情况,则用post方法:;a.请求的结果有持续性的副作用,例如:数据库内添;b.若使用get方法,则表单上收集的数据可能让U;c.要传送的数据不是采用ASCII编码;若符
如果提交请求纯粹只是从服务器端获取数据而不是进行其他操作,并且多次提交不会有明显的副作用,应该使用get。
比如:搜索引擎的查询(/search?q=abc)和分页(user.do?page=1)
如果提交这个请求会产生其他操作和影响,就应该使用post。
比如:修改服务器上数据库中的数据;发送一封邮件;删除一个文件等
另一个要考虑因素是安全性。
若符合下列任一情况,则用post方法:
a.请求的结果有持续性的副作用,例如:数据库内添加新的数据行。
b.若使用get方法,则表单上收集的数据可能让URL过长。
c.要传送的数据不是采用ASCII编码。
若符合下列任一情况,则用get方法:
a.请求是为了查找资源,html表单数据仅用来搜索。
b.请求结果无持续性的副作用。
c.收集的数据及html表单内的输入字段名称的总长不超过1024个字符。
四、浏览器差异
IE6:URL长度限制为2083个字符;post之后,刷新页面不会自动重新post数据,会出现警告。
IE7和IE6相同。
Firefox:刷新页面不会自动重新post数据会出现警告。
三亿文库包含各类专业文献、中学教育、行业资料、应用写作文书、专业论文、生活休闲娱乐、幼儿教育、小学教育、文学作品欣赏、高等教育、16表单提交方法之form中get和post的区别等内容。 
 在掌握了 HTTP 协议的过程中我们将自然而然地了解到 GET 与 POST 的本质区别...HTML 超链接(&a&&/a&)只能用 GET 方式提交 HTTP 请求,HTML 表单(&form&&...  表单提交的方式有 GET 和 POST.我在这里不多说什么,给大家看一个 以 GET ...form 中 action 的内容, 而后面的&GET=GET& 就是 HTML 的 form 中,input ...  HTTP Get 与 Post 的区别表单提交中 Get 和 Post 方式的区别有 5 点 1. ...如果不指定 Method,则默认为 GET 请求,Form 中提交的数据将会附加 在 url ...  &); document.getElementById(&itemName&).focus(); } with (document.getElementById(&itemForm&)) { method = &post&; action = &item.do?...  form-urlenc Content-Length: 40 Connection: Keep-Alive (此处空一行) name=Professional%20Ajax&publisher=Wiley 3.表单提交中 get 和 post 方式的区别归纳如下...  表单提交中 Get 和 Post 方式的区别 1. get 是从服务器上获取数据,post 是...HTML 表单 Form 中的 get 和 post 方法 在 B/S 应用程序中,前台与后台的...  HTTP 请求的两种方式,GET 和 POST 请求的表面形式上的区别: 1. 2. 3. GET...使用 form 表单提交数据的时候,如果 method 属性没有编写,或者 method 属性值被...  ASP程序中可以用Request对象的 (49) 方法从POST方式提交的表单中获取信息。 A.FormB.PostC.QueryStringD.Get_答案解析_2016年_一模/二模/三模/联考_图文_百度高考  HTTP-GET 以使用 MIME 类型 application/x-www-form-urlencoded 的 urlencoded ...方式的区别归纳如下几点: 表单提交中 get 和 post 方式的区别归纳如下几点: ...8411人阅读
HTML(26)
比较 GET 与 POST
下面的表格比较了两种 HTTP 方法:GET 和 POST。
后退按钮/刷新
数据会被重新提交(浏览器应该告知用户数据会被重新提交)。
可收藏为书签
不可收藏为书签
application/x-www-form-urlencoded
application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。
参数保留在浏览器历史中。
参数不会保存在浏览器历史中。
对数据长度的限制
是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。
对数据类型的限制
只允许 ASCII 字符。
没有限制。也允许二进制数据。
与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。
在发送密码或其他敏感信息时绝不要使用 GET !
POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。
数据在 URL 中对所有人都是可见的。
数据不会显示在 URL 中。
其他 HTTP 请求方法
下面的表格列出了其他一些 HTTP 请求方法:
与 GET 相同,但只返回 HTTP 报头,不返回文档主体。
上传指定的 URI 表示。
删除指定资源。
返回服务器支持的 HTTP 方法。
把请求连接转换到透明的 TCP/IP 通道。
详情参考:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:208575次
积分:2509
积分:2509
排名:第12895名
原创:70篇
转载:71篇
评论:13条
(4)(21)(30)(33)(2)(2)(8)(4)(13)(18)(6)}

我要回帖

更多关于 登录是get还是post 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信