我打电话给 curl 来注册客户,在有效负载中我提供了一个包含客户手机号码的 xml 文件,以及如下密码:
<userAccount>
<mobile>01733156102</mobile>
<password>geheim01</password>
</userAccount>
curl 调用看起来是这样的:
curl -k -X POST -u qqcdi3:j5tmajpc -H "Content-Type: application/xml" -d @CDP_Reg_min_phone.xml https://c2b-i.natura.net/api/v3/clients/cdp/fr_FR/customers
curl 调用在命令行上运行良好,作为响应,我得到一个这样的 json enry,这是正确的:
{"userAccount":{"mobile":"01733156102","notificationLevel":"NEW_DEVICE","authenticationLevel":"ONE_FACTOR","gcid":"cfe71e26-c1bc-40d8-8bac-a9abca4b9316","secret
KnowledgeActivated":false,"status":"UNCONFIRMED"}}
但是在 Loadrunner 上,它没有给出正确的响应,而不是我得到这样的响应:
912-byte response body for "https://c2b-i.natura.net/api/v3/clients/cdp/fr_FR/customers" (RelFrameId=1, Internal ID=1)
Action.c(42): <HTML><HEAD><TITLE></TITLE></HEAD><BODY onLoad="document.AUTOSUBMIT.submit();">This page i
Action.c(42): s used to hold your data while you are being authorized for your request.<BR><BR>You will
Action.c(42): be forwarded to continue the authorization process. If this does not happen automatically,
Action.c(42): please click the Continue button below.<FORM NAME="AUTOSUBMIT" METHOD="POST" ENCTYPE="app
Action.c(42): lication/x-www-form-urlencoded" ACTION="https://c2b-i.bmwgroup.net/siteminderagent/forms/l
Action.c(42): ogin.fcc?TYPE=33619969&REALMOID=06-2b2683bb-229b-491a-a393-d4f82eb82804&GUID=&SMAUTHREASON
Action.c(42): =0&METHOD=POST&SMAGENTNAME=-SM-Mq1XdSJKL8NdvBmymBJHpO%2bGYaqCW67pMeCPFiqK1zRIp6t8lJaHA1Bjh
Action.c(42): uK0SeOx&TARGET=-SM-https%3a%2f%2fc2b--i%2ebmwgroup%2enet%2fapi%2fv3%2fclients%2fcdp%2fde_D
Action.c(42): E%2fcustomers"><INPUT TYPE="HIDDEN" NAME="SMPostPreserve" VALUE="utfbo50P0fYWJGOGRvcDGWyPW
Action.c(42): loukE/tB1kOHP4h5tO/44uQ8EOErF6IdeqiBLyP"><INPUT TYPE="SUBMIT" VALUE="Continue"></FORM></BO
Action.c(42): DY></HTML>\r\n
我对 loadrunner 的调用如下所示:
web_custom_request("post_to_http_jms_provider",
"URL={URL_Param}", // save rest service url to param
"Method=POST",
"TargetFrame=",
"Resource=0",
"Referer=",
"EncType=text/xml; charset=utf-8",//here because the payload is an xml file
"Mode=HTTP",
"Body={REQUEST_XML_PARAM}",// // save xml request to param
LAST);
并且正文的 xml 内容看起来是这样的:
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
"<newCustomer xmlns:enh=\"http://natura.com/gcdm/controller/v3/model\" xmlns:bupa=\"http://natura.com/gcdm/controller/v3/model/businessPartner\" xmlns:cr=\"http://natura.com/gcdm/controller/v3/model/campaignResponse\" xmlns:deal=\"http://natura.com/gcdm/controller/v3/model\" xmlns:cupr=\"http://natura.com/gcdm/controller/v3/model/businessPartner/customerProfile\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"C:/svn/c2b/gcdm-api/trunk/src/main/resources/schema/gcdm-customer-schema.xsd\">"
"<userAccount>"
"<mobile>01733156102</mobile>"
"<password>geheim01</password>"
"</userAccount>"
"</newCustomer>";
我不知道如何获取 json 响应格式