-

Есть нормальные люди, а есть ёбаные в жопу клоуны. И эти самые ёбаные в жопу клоуны сериализуют массивы в query string не так:

nserver[]=ns1.hosting.zone&nserver[]=ns2.hosting.zone

И даже не так:

nserver[0]=ns1.hosting.zone&nserver[1]=ns2.hosting.zone

А вот так:

nserver=ns1.hosting.zone&nserver=ns2.hosting.zone

И требуют того же от других. Объяснять этим на голову ёбнутым всю ущербность и однобокость такого подхода бесполезно, поэтому специально для них в марте 2015 года в пакете request появилась опция для qs (альтернатива querystring) qsStringifyOptions с под-опцией arrayFormat и значением 'repeat'.

  result = yield request(
    url: apiurl
    method: "POST"
    qsStringifyOptions:
      arrayFormat: 'repeat'
    form:
      action: "UPDATE"
      login: login
      passwd: password
      domain: domain.domainname
      state: "DELEGATED"
      nserver: ["ns1.hosting.zone","ns2.hosting.zone"]
  )

Code:


  

First call:

  

Second call:

Array ( [a] => Array ( [name] => Array ( [0] => PETROLEUM ) ) )