2016-11-25 12 views
0

Мой réponse является:Как передать значения вместо Vector в цикле foreach?

[ 
{"id":106455,"assetId":482282,"masterKeyframeId":157060,"closed":false}, 
{"id":106661,"assetId":502174,"masterKeyframeId":169193,"closed":false} 
{.....and so many...} 
] 

Я принес «AssetID» и «masterKeyframeId» правильно используя ниже запроса, но проблема в том, как установить оба значения в цикле Еогеасп? (Я использовал «помощь» и получает одно значение, но не знаю о передаче одного значения для «mkeyframeId», как он принимает вектор)

.exec(http("request_7") 
      .get(uri3 + "/sortBy=SEGGREGATED_SESSION_SORT;reviewState=IN_PROGRESS") 
      .check(jsonPath("$..assetId").findAll.saveAs("astId")) 
      .check(jsonPath("$..masterKeyframeId").findAll.saveAs("mkeyframeId")) 
      .headers(headers_7) 
      ) 

     .foreach("${astId}", "aid") { 
      doIf(session => session("aid").as[String] != "-1") 
      { 
       exec(http("Set_IDs") 
       .get("https://stackoverflow.com/a/" + accountname + "/assets/${aid}/keyframe/${mkeyframeId}") 
       ) 
      } 
     } 

Здесь проблема ${mkeyframeId} он принимает вектор и передать в URL, как это, Отправив запрос = Set_IDs = URI https://qa1.net/a/hbmin1ac/assets/482282/keyframe/Vector(157060,%20169193):

Вместо

https://qa1.net/a/hbmin1ac/assets/482282/keyframe/157060 
https://qa1.net/a/hbmin1ac/assets/502174/keyframe/169193 

Спасибо.

+1

'получить ("/ с /" + AccountName +«/ активы/$ {help}/keyframe/$ {mkeyframeId (0)} ")' Имейте в виду, что он может вызывать «IndexOutOfBoundException», если 'mkeyframeId' был« пустым »вектором. –

+0

Спасибо Sarvesh. Пожалуйста, напишите свой ответ. – Peter

ответ

1

Вы должны попробовать что-то вроде этого:

.foreach("${astId}", "aid", "counter") { 
    doIf { session => 
    for { 
     aid <- session("aid").validate[String] 
    } yield aid != "-1" 
    } { 
    exec(http("Set_IDs") 
     .get { session => 
     for { 
      aid <- session("aid").validate[String] 
      mkeyframeId <- session("mkeyframeId").validate[Seq[String]] 
      c <- session("counter").validate[Int] 
     } yield s"https://stackoverflow.com/a/$accountname/assets/$aid/keyframe/${mkeyframeId(c)}" 
     } 
    ) 
    } 
} 

Вы можете написать блок doIf как это тоже:

doIf(_("aid").validate[String].map(_ != "-1")) 

 Смежные вопросы

  • Нет связанных вопросов^_^