tianya6607 发表于 2013-11-13 16:21:44

请教个问题:LR如何模拟REST client发post请求

服务器:nginx
测试需要模拟REST client向服务器发送Post请求,消息如下所示
POST /1.0.0.0/EnterAccounts/scy/SubAccounts/Create?sig=54ce457b7183895ce18f09cb383c698dHTTP/1.1
Content-Type: application/xml;charset=utf-8
Accept: application/xml
Authorization: MTAwMDoyMDEzMTExMzE1NDI1Nw==
Content-Length: 111
Host: 192.168.27.108:7777
Connection: Keep-Alive

<?xml version='1.0' encoding='utf-8'?>
<Create>
<appId>5ebdce4f87104b11b5ee9bf88ec53d4a</appId>
<accountSid>1000</accountSid>
</Create>

初学LR,摸索写了个脚本
web_add_header("Authorization", "MTAwMDoyMDEzMTExMzE1NDI1Nw==");
    web_custom_request("web_custom_request",

"URL=http://192.168.27.108:7777/1.0.0.0/EnterAccounts/scy/SubAccounts/Create?sig=54ce457b7183895ce18f09cb383c698d",

"Method=POST",

"Resource=0",

"RecContentType=application/xml",

"Referer=",

"Mode=HTTP",

"EncType=Content-Type: application/xml;charset=utf-8",

"Body=<?xml version='1.0' encoding='utf-8'?>/r/n"
"<Create>/r/n"
"<appId>5ebdce4f87104b11b5ee9bf88ec53d4a</appId>/r/n"
"<accountSid>1000</accountSid>/r/n"
"</Create>/r/n",
LAST);

请问各位大侠,如何实现?谢谢!

tianlang001 发表于 2013-11-13 16:26:59

本帖最后由 tianlang001 于 2013-11-13 16:29 编辑

"EncType=Content-Type: application/xml;charset=utf-8",

这行有错误
Content-Type其实就是EntType

改成下面的
"EncType=application/xml;charset=utf-8",

tianya6607 发表于 2013-11-13 16:29:40

回复 2# tianlang001

是的,执行错误,如下:
正在开始操作 Action。
Action.c(3): 警告 -26593: 将添加的标头应用于所有后续 URL 时,可能会导致不可预测R 结果。已添加它       
Action.c(3): web_add_header("Authorization") 最高严重级别为“warning”       
Action.c(4): 错误 -27796: 连接服务器“192.168.27.108:7777”失败: “ 连接已超时”       
Action.c(4): 警告 -26000: Empty or no response for URL="http://192.168.27.108:7777/1.0.0.0/EnterAccounts/scy/SubAccounts/Create?sig=54ce457b7183895ce18f09cb383c698d"       
Action.c(4): web_custom_request("web_custom_request") 最高严重级别为“ERROR”,0 个正文字节,0 个标头字节       
正在结束操作 Action。
正在结束迭代 1。

备注:服务器是OK的,因为我用python构造同样的消息能获得响应,所以怀疑自己写的脚本有错误,请各位大侠指教,谢谢!

tianlang001 发表于 2013-11-13 16:32:13

好吧,雷到我了,你的转义字符真奇葩
是\r\n   而不是/r/n
其实发送的数据要不要这个都无所谓,这样只是在log中容易看些

tianlang001 发表于 2013-11-13 16:36:35

Body=<?xml version='1.0' encoding='utf-8'?>
你确定这里面是单引号而不是双引号么,怎么我的REST Client里都是双引号呢,要是双引号的话,记得要转义
写成这样\"1.0\"

tianya6607 发表于 2013-11-13 16:37:49

本帖最后由 tianya6607 于 2013-11-13 16:40 编辑

回复 4# tianlang001


    把转义符修改或拿掉后还是不行,依旧报上述错误,单引号是确信的,用python构造http请求也是单引号

tianlang001 发表于 2013-11-13 16:45:14

本帖最后由 tianlang001 于 2013-11-13 16:46 编辑

回复 6# tianya6607


    第一个回复你改了没,第一个回复我重新编辑过,最开始没看到错误

tianya6607 发表于 2013-11-13 16:49:48

回复 7# tianlang001


    感谢大侠耐心指导,我仔细检查了代码,自己犯错误了,把URL地址搞错了,URL修正后就OK了,谢谢!

tianlang001 发表于 2013-11-13 16:58:35

回复 8# tianya6607


    算不得大侠,只是最近刚好把这个研究懂了,呵呵,共同进步,EntType那个你改了没,要是没改能运行给我说下哈。

tianya6607 发表于 2013-11-13 17:08:37

回复 9# tianlang001


    不改也是可以的,只是头域Content-Type: Content-Type: application/xml;charset=utf-8
重复的,可能服务器没有严格校验

tianlang001 发表于 2013-11-13 17:23:30

回复 10# tianya6607


    thanks,我还知道这个可以写到header中去,写两个header

ZJengia 发表于 2015-8-28 10:59:44

tianya6607 发表于 2013-11-13 16:29
回复 2# tianlang001

是的,执行错误,如下:


你这个警告是怎么解决的,我本来想直接忽略的,但是会影响后面的操作。
Action.c(3): 警告 -26593: 将添加的标头应用于所有后续 URL 时,可能会导致不可预测R 结果。已添加它         
Action.c(3): web_add_header("Authorization") 最高严重级别为“warning”         

页: [1]
查看完整版本: 请教个问题:LR如何模拟REST client发post请求