curl - 从cookie-jar文件中选择特定的cookie值

问题描述:

如何从cookie-jar文件中为未来的请求选择特定cookie的值?curl - 从cookie-jar文件中选择特定的cookie值

我需要在网站上提交表单,要求将当前sessionId作为表单数据传递。 sessionId在登录页面上设置为cookie。

第一请求(认证)

curl -d "username=my_user&pass=my_pass" http://mywebsite.com/login.php -c, --cookie-jar my-cookies 

第二请求(表单提交)

curl -d "sessionId=jk5lkdr7cdqkn1ptqa0rmndbr7&formField1=abc&formField2=def" http://mywebsite.com/getReport.php -b, --cookie my-cookies 

在上述请求数据,我已经手动复制从cookie文件内的会话ID。 cookie文件看起来像这样。 (的sessionId = PHPSESSID)

# Netscape HTTP Cookie File 
 
# https://curl.haxx.se/docs/http-cookies.html 
 
# This file was generated by libcurl! Edit at your own risk. 
 

 
mywebsite.com \t FALSE \t/\t FALSE \t 0 \t PHPSESSID \t jk5lkdr7cdqkn1ptqa0rmndbr7 
 
.mywebsite.com \t TRUE \t/\t FALSE \t 1516507485 \t info \t crownandcaliber%40mediaiqdigital.com 
 
.mywebsite.com \t TRUE \t/\t FALSE \t 1507867485 \t pref \t deleted 
 
.mywebsite.com \t TRUE \t/\t FALSE \t 0 \t affiliate_flag \t Y3Jvd25hbmRjYWxpYmVyQG1lZGlhaXFkaWdpdGFsLmNvbQ%3D%3D 
 
.mywebsite.com \t TRUE \t/\t FALSE \t 0 \t cookie \t name%3ATm8gYWR2ZXJ0aXNlciBuYW1lIGF2YWlsYWJsZQ%3D%3D%3B

有我的方式progammatically拉其在所述第一请求到表格数据的第二请求设置PHPSESSID cookie的值?

+0

@IuriiDrozdov - 不需要帮助保持会话活着;通过传递会话cookie来做到这一点。我期望提取会话cookie的_value_并将其作为请求#2的表单数据传递。 (除了传递整个cookie文件。) –

+1

为什么你不从文件中读取呢? –

+1

awk'NR == 5'youfilewithcookie | awk {'print $ 7'} | (阅读sessId; yourcul命令在这里与$ sessId) –

下面的代码从一个文件youfilewithcookie读取5日线,获得第七列的内容,并在一个名为sessId变量读取它。

awk 'NR==5' youfilewithcookie | awk {'print $7'} | (read sessId; yourculcommand here with $sessId) 
+0

请复习[如何写出一个好答案](https://*.com/help/how-to-answer)。不接受代码的答案是不鼓励的,因为他们没有解释他们如何解决问题中的问题。你应该更新你的答案,以解释这是什么以及如何解决问题。 - 这不仅有助于OP,也有助于解决其他类似问题。 – FluffyKitten

+0

结束了这个,为了解决会话cookie不在第5行的情况: 'awk'/ PHPSESSID /'jivox-cookies | awk {'print $ 7'} | ...' –