How to update Request when override sign on Gatling3? HELP!!!

I write the below code when I use Gatling3:

class KsSignatureCalculator extends SignatureCalculator {

  override def sign(request: Request): Unit = {

    val list = new util.ArrayList[String]()

    var salt = ""
    var secrect_key = ""

    val query = request.getUri.getEncodedQueryParams
    for (i <- 1 to query.size()) {
      if (query.get(i-1).getName == "salt") {
        salt = query.get(i-1).getValue
      }
      if (query.get(i-1).getName == "client_key") {
        if (query.get(i-1).getValue == "xyz") {
          secrect_key = "xyz-xyz" // android
        } else { // "abc"
          secrect_key = "abc-abc" // ios
        }
      }
      val paramString = query.get(i-1).getName + "=" + query.get(i-1).getValue
      list.add(paramString)
    }

    val body = request.getBody
    var form: util.List[Param] = Collections.emptyList()
    if (body.isInstanceOf[FormUrlEncodedRequestBody]) {
      form = body.asInstanceOf[FormUrlEncodedRequestBody].getContent
    } else if (body.isInstanceOf[MultipartFormDataRequestBody]) {
      // todo
    }
    for (i <- 1 to form.size()) {
      if (form.get(i-1).getName == "salt") {
        salt = form.get(i-1).getValue
      }
      val paramString = form.get(i-1).getName + "=" + form.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(secrect_key)

    val sig = md5Hex(sb.toString)
    request.getUri.getEncodedQueryParams.add(new Param("sig", sig))

    if (token_client_salt != "") {
      val tokenSig = sha256Hex(sig + token_client_salt)
      request.getUri.getEncodedQueryParams.add(new Param("__NStokensig", tokenSig))
    }

    println(request) // Why not output sig and __NStokensig??
  }

}

I hope update request to add new Param.

Why request not update?

How should I do?

thanks!!!