How to calculate signature when I use Gatling3?

When I use Gatling2.3, I use the below code to calculate signature:

def calculateAndAddSignature(request: Request, requestBuilder: RequestBuilderBase[_]): Unit = {
  val list = new ArrayList[String]()
  var salt = ""
  for (i <- 1 to request.getQueryParams.size()) {
    if (request.getQueryParams.get(i-1).getName == "salt") {
      salt = request.getQueryParams.get(i-1).getValue
    }
    val paramString = request.getQueryParams.get(i-1).getName +"="+ request.getQueryParams.get(i-1).getValue
    list.add(paramString)
  }
  for (i <- 1 to request.getFormParams.size()) {
    if (request.getFormParams.get(i-1).getName == "salt") {
      salt = request.getFormParams.get(i-1).getValue
    }
    val paramString = request.getFormParams.get(i-1).getName +"="+ request.getFormParams.get(i-1).getValue
    list.add(paramString)
  }
  Collections.sort(list)
  val sb = new StringBuilder
  for (j <- 1 to list.size()) {
    sb.append(list.get(j-1))
  }
  sb.append("123456789") // one secret number
  val sig = md5Hex(sb.toString)
  val tokenSig = sha256Hex(sig + salt)
  requestBuilder.addQueryParam("sig",sig)
  requestBuilder.addQueryParam("__NS_token_sig",tokenSig)
}

and, use it on the following code:

val s = scenario("upload")
  .exec(http("test")
    .post("url")
    // some queryParams and formParams

How to calculate new query-string based request? thanks!

在 2018年12月3日星期一 UTC+8上午11:52:36,田欧写道:

IMPORTANT: How should I update Request, because I add two new query-string to Request.

在 2018年12月3日星期一 UTC+8上午11:52:36,田欧写道: