golang cookiejar 怎么自己添加cookies

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang cookiejar 怎么自己添加cookies相关的知识,希望对你有一定的参考价值。

参考技术A 用GO语言(golang)写了一个简单的Web服务,但是始终无法获取Cookie的值
现象如下:
使用Chrome的开发者工具观察Cookie可以看到设置的Cookie的值
使用r.Cookie(CookieName)无法取得Cookie内容,错误信息:http: named cookie not present
在服务器端打印Requset结构,结果中没有设置的Cookie值
最后Google了一下,在golang-nuts的论坛里找到了解决方法。
根本原因在于GO语言(golang)不能获取值中带有空格的Cookie
而且会将Cookie中的一些特殊字符替换为空格
//src/pkg/net/http.go

func (c *Cookie) String() string
...
fmt.Fprintf(&b, "%s=%s", sanitizeName(c.Name), sanitizeValue(c.Value))
...

...

var cookieValueSanitizer = strings.NewReplacer("\n", " ", "\r", " ", ";", " ")
...
func sanitizeValue(v string) string
return cookieValueSanitizer.Replace(v)

俺就是使用了分号。。。
另外讨论中提到的不要使用指针传递http.ResponseWriter的问题,
我试了一下,使用指针传递http.ResponseWriter不会对Cookie的设置和取得产生影响
不过很多函数需要的都是http.ResponseWriter的对象,如果传指针,很多地方要写*http.ResponseWriter着实也挺麻烦

php使用CURL不依赖COOKIEJAR获取COOKIE的方法

本文实例讲述了php使用CURL不依赖COOKIEJAR获取COOKIE的方法。分享给大家供大家参考。具体分析如下:

PHP中CURL类是一个非常牛逼的工具类,具体怎么牛逼就不啰嗦了。

对于COOKIE,CURL类也有很不错的支持,但不够灵活,并未能通过现成的方法以变量的方法获取到,而以要通过以下方法实现。

// 把COOKIE保存至cookie.txt 
curl_setopt($ch, CURLOPT_COOKIEFILE, ‘cookie.txt‘); 
curl_setopt($ch, CURLOPT_COOKIEJAR, ‘cookie.txt‘); 
 

先把COOKIE保存文件,调用的时候还得读取文件,这样意味着两次的IO操作,效率如何,不用说大家都清楚了。
那么有没有办法可以绕过写读文件呢?不卖关子,直接上代码:

// 初始化CURL 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
// 获取头部信息 
curl_setopt($ch, CURLOPT_HEADER, 1); 
// 返回原生的(Raw)输出 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
// 执行并获取返回结果 
$content = curl_exec($ch); 
// 关闭CURL 
curl_close($ch); 
// 解析HTTP数据流 
list($header, $body) = explode("

", $content); 
// 解析COOKIE 
preg_match("/set-cookie:([^
]*)/i", $header, $matches); 
// 后面用CURL提交的时候可以直接使用 
// curl_setopt($ch, CURLOPT_COOKIE, $cookie); 
$cookie = $matches[1]; 
 

希望本文所述对大家的php程序设计有所帮助。

 

转: https://blog.csdn.net/dbg8685/article/details/53289149

参考: http://www.zjmainstay.cn/php-curl 

 

以上是关于golang cookiejar 怎么自己添加cookies的主要内容,如果未能解决你的问题,请参考以下文章

php使用CURL不依赖COOKIEJAR获取COOKIE的方法

cookie

Python3 requests与http.cookiejar的使用(cookie的保存与加载)

python爬虫之模拟登录将cookie保存到代码中

爬虫之cookiejar模块

纯golang爬虫实战(二)