Java 如何设置http正文-向字符串添加json时,我没有得到所需的响应
我正在使用Katalon studio发送HTTP请求。在发送请求之前,我想编辑JSON对象的主体 JSON-BodyJava 如何设置http正文-向字符串添加json时,我没有得到所需的响应,java,json,string,escaping,katalon-studio,Java,Json,String,Escaping,Katalon Studio,我正在使用Katalon studio发送HTTP请求。在发送请求之前,我想编辑JSON对象的主体 JSON-Body { "properties":{}, "routing_key":"actions.process.x.1", "payload": "{ \"type\":\"SEND_TWEET\", \"twitterAccessTokens\":{ \"token\":\"abzzzzzzzzzUS38IHg3wvT7fhd63hdh3y4hfh
{
"properties":{},
"routing_key":"actions.process.x.1",
"payload": "{
\"type\":\"SEND_TWEET\",
\"twitterAccessTokens\":{
\"token\":\"abzzzzzzzzzUS38IHg3wvT7fhd63hdh3y4hfhfjr3433rcI\",
\"secret\":\"abzzzzzzzzzUS38IHg3wvT7fhd63hdh3y4hfhfjr3433rcI\"
},
\"screenName\":\"D123\",
\"text\":\" #automation_br test test test 111\"
}",
"payload_encoding":"string"
}
在发送请求而不编辑正文时:打印正确的JSON
def originalBody = request.getHttpBody()
System.out.println('O_Body: ' + originalBody)
Response: Start action : Statement - out.println("O_Body: " + originalBody)
{
"properties":{},
"routing_key":"actions.process.x.1",
"payload": "{
\"type\":\"SEND_TWEET\",
\"twitterAccessTokens\":{
\"token\":\"abzzzzzzzzzUS38IHg3wvT7fhd63hdh3y4hfhfjr3433rcI\",
\"secret\":\"abzzzzzzzzzUS38IHg3wvT7fhd63hdh3y4hfhfjr3433rcI\"
},
\"screenName\":\"D123\",
\"text\":\"hello test test test 1 2 3\"
}",
"payload_encoding":"string"
}
当我编辑http正文并尝试添加我自己的转义字符串以及生成的添加变量时,我得到以下输出:
//String
String Body = '{\n "properties":{},\n"routing_key":"actions.process.x.1",\n"payload":"{\n \\"type\\":\\"SEND_TWEET\\" ,\n \\"twitterAccessTokens\\":{\n \\"token\\":\\"845259605840183297-O0RYViNU5mCt0WutyWdo4URGyiQLMjI\\",\n \\"secret\\":\\"78Qy1FQ26YEHMpSiMEUS38IHg3wvTLdDhwdDy0kF55rcI\\" \n },\n \\"screenName\\":\\"Deane56935078\\",\n \\"text\\":\\"@Deane56935078 #automation_br ' + randomString + ' \n}",\n "payload_encoding":"string" \n}'
System.out.println('Body: ' + Body)
//Change HTTP Body
request.setHttpBody(Body)
输出:
"{
"properties":{},
"routing_key":"actions.process.x.1",
"payload":"{
\"type\":\"SEND_TWEET\" ,
\"twitterAccessTokens\":{
\"token\":\"845259605840183297-O0RYViNU5mCt0WutyWdo4URGyiQLMjI\",
\"secret\":\"78Qy1FQ26YEHMpSiMEUS38IHg3wvTLdDhwdDy0kF55rcI\"
},
\"screenName\":\"Deane56935078\",
\"text\":\"@Deane56935078 #automation_br " + randomString + "
}",
"payload_encoding":"string"
}"
在编辑正文之后,JSON在开头和结尾都有倒逗号。不会打印随机字符串值,而是打印名称
在字符串中使用JSONI时,是否有人可以帮助转义字符?您可以创建一个自定义关键字来转义字符串,以便在整个测试用例中使用它。这具有您需要或使用的功能 在测试用例中使用时,您需要替换
\”text\”:\”@Deane56935078 #automation_br " + randomString + "
与
您应该立即重新生成API密钥,因为您忘记了从您制作的一个粘贴中编辑您的twitter API密钥。
Customkeywords.quote("@Deane56935078 #automation_br " + randomString);