EddieIvan01/nic

如何传递slice类型data?

Closed this issue · 1 comments

gyje commented

首先感谢作者写的这个库,这是我用过的最舒服的golang http库。
如下Python requests代码:

import requests

cookies = {
    'JSESSIONID': '...............',
    'nt_pl_cmp_ucode': '..........',
}

headers = {
    'Connection': 'keep-alive',
    'User-Agent': 'Mozilla/5.0',
	.......
}

data = [
   ...............
  ('dealPeopleCodes', '01'),
  ('dealPeopleCodes', '02'),
  ('dealPeopleCodes', '03'),
  ('personProCodes', '06'),
  ('personProCodes', '01'),
  ('personProCodes', '07'),
  ('personProCodes', '02'),
  ('personProCodes', '04'),
  ('personProCodes', '05'),
  .................
]

response = requests.post('https://www.xxx.com/action', headers=headers, cookies=cookies, data=data)

在nic中该如何传递类似Python list类型的数据?

感谢您的支持

Python里允许这样写是因为dict的构造函数允许传递二元元组类型

>>> dict([('a', 1), ('b', 2)])
{'a': 1, 'b': 2}

但在Go这种静态类型语言里map的键值和数组的成员需要严格指定类型的,所以不可能和一个动态类型语言的API完全一样(而且这属于语言基础类型的设计,在库函数的层面修改会造成不必要的开销,比如Data成员允许传入interface{}然后作类型断言)

如果确实需要这样的功能,建议手动迭代切片转化为map类型