Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用cheerio从html中提取csrf值_Java_Jquery_Postman_Cheerio - Fatal编程技术网

Java 使用cheerio从html中提取csrf值

Java 使用cheerio从html中提取csrf值,java,jquery,postman,cheerio,Java,Jquery,Postman,Cheerio,目标: 1.从我的GET请求响应正文中提取csrf值 2.将提取的“csrf”值存储在环境变量中 3.在后续POST请求中使用它 找到解决方案并开始工作: 变量匹配设置和IO.load(responseBody); Extractvarmatchsettings=text.match(vara=(.*)这有点复杂,但可以通过多种方式实现。这里我向您展示一种静态方式,根据您的要求进行更改 Postman支持库,您可以使用它来解析HTML响应 var html = cheerio(responseB

目标: 1.从我的GET请求响应正文中提取
csrf
值 2.将提取的“csrf”值存储在环境变量中 3.在后续POST请求中使用它

找到解决方案并开始工作: 变量匹配设置和IO.load(responseBody);
Extract
varmatchsettings=text.match(vara=(.*)

这有点复杂,但可以通过多种方式实现。这里我向您展示一种静态方式,根据您的要求进行更改

Postman支持库,您可以使用它来解析HTML响应

var html = cheerio(responseBody);

//get script tag data
var htmlData = html[14].children[1].children[5].children[0].data;

var csrfIndex = htmlData.search(/'csrf'/i);
var dataBeforeCsrf = htmlData.slice(0, csrfIndex);

//remove content before csrf node
htmlData = htmlData.replace(dataBeforeCsrf, '');

//to make it in right format of JSON, replace single quote with double, 
//remove ; and add bracket

htmlData = htmlData.replace(/'/g, '"');
htmlData = htmlData.replace(';', '');

//parse to JSON 
var jsonData = JSON.parse('{' + htmlData);

//print csrf
console.log(jsonData.csrf); 

您的响应正文不是有效的
JSON
。这些是
DOM
元素,它们与您原来的问题不同。我可以告诉你一种方法。但无法为您编写代码。您必须通过添加控制台日志来找到所需的元素,没有其他方法。