[问题] post json 传值方式?

楼主: RINPE (RIN)   2017-12-31 09:22:39
目前遇到的问题是 要与api取值需要用post json格式的参数来完成
自己的作法是先将参数用jsonserialization转为data
之后在request的httpbody 之后用urlsession 来跟api取值
但这样做api的回传结果都是某某参数为空(如果参数有问题的回传结果,如果参数穿错
的也会把错误的参数显示出来、为空就是没传过去)
用抓封包的来看传过去的参数 确实有东西 格式确实是{“title”:test}这种(applicat
ion/json)的
自己用了postMan传入相同参数是没问题的 用抓封包的来看
带入的参数是会变成title=test&sub%5B%5D=1这种的(application/x-www-form-urlenco
ded)
想请问要变成下面这种,是只要在request.setValue设定成application/x-www-form-url
encoded就好吗?
还是传入的参数也有要修改的地方?
另外想请问 如果api回传的不是纯json(含有<br>等等)是不是没办法正常使用?
麻烦各位前辈解答了
作者: tentenlee (天天)   2017-12-31 10:47:00
不是很懂 你一下说你抓封包是formdata一下又说json
作者: XXXXLAY (金城武(本尊))   2017-12-31 12:19:00
我都用MiyaMoya
作者: tentenlee (天天)   2017-12-31 13:42:00
纠正一下观念 post的方式只有一种,你说的方式是body内的资料格式方式,可以透过定义request的header的content-type去让后台判别你是用哪种资料格式,后台固定读哪一种的话其实你不加也没差 重点在于body内的资料有些套件会依照你设定的送出资料格式去帮你改header你还是先说你是用什么方式去送request比较好,不然不知怎么跟你说该怎么做
作者: yuanruo (罪を憎んで人を憎まず)   2017-12-31 19:07:00
form-urlencoded就是你Body格式要带的是aaa=xxx&bbb=yyy把字串编成data填入HttpBody,你header的content-type要改通常server端会用这种就是你们支援网页或是懒的改你用一些第三方的几乎都帮你处理好环境了 所以不用担心自己去写api request相关就要注意这些东西alomafire不清楚,AFNetWorking则是request时选不同分类自动帮你处理四种request
作者: benjenq (Ben(憋))   2016-01-01 11:23:00
[request setHTTPMethod:@"POST"]

Links booklink

Contact Us: admin [ a t ] ucptt.com