看板 MacDev 關於我們 聯絡資訊
目前遇到的問題是 要與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>等等)是不是沒辦法正常使用? 麻煩各位前輩解答了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.70.7.44 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1514683362.A.085.html
tentenlee: 不是很懂 你一下說你抓封包是formdata一下又說json12/31 10:47
那時候查了一下發現post有四種提交數據的方法 用postman 選擇formdata和application/x-www-form-urlencoded結果都是正常 但自己用swift傳相同參數後 卻是失敗的 以查的文章看是傳json過去(文件也是要我傳j son) 現在想試要怎麼樣才能把參數 用跟postman那嘗試的一樣
XXXXLAY: 我都用Miya12/31 12:19
XXXXLAY: Moya 12/31 12:19
※ 編輯: RINPE (61.70.7.44), 12/31/2017 13:35:46
tentenlee: 糾正一下觀念 post的方式只有一種,你說的方式是body內12/31 13:42
tentenlee: 的資料格式方式,可以透過定義request的header的 12/31 13:43
tentenlee: content-type去讓後台判別你是用哪種資料格式,後台固12/31 13:43
tentenlee: 定讀哪一種的話其實你不加也沒差 重點在於body內的資料12/31 13:44
tentenlee: 有些套件會依照你設定的送出資料格式去幫你改header12/31 13:44
tentenlee: 你還是先說你是用甚麼方式去送request比較好,不然不知 12/31 13:45
tentenlee: 怎麼跟你說該怎麼做12/31 13:45
yuanruo: form-urlencoded就是你Body格式要帶的是aaa=xxx&bbb=yyy12/31 19:07
yuanruo: 把字串編成data填入HttpBody,你header的content-type要改12/31 19:08
yuanruo: 通常server端會用這種就是你們支援網頁或是懶的改12/31 19:09
yuanruo: 你用一些第三方的幾乎都幫你處理好環境了 所以不用擔心12/31 19:10
yuanruo: 自己去寫api request相關就要注意這些東西 12/31 19:11
yuanruo: alomafire不清楚,AFNetWorking則是request時選不同分類12/31 19:12
yuanruo: 自動幫你處理四種request 12/31 19:12
benjenq: [request setHTTPMethod:@"POST"]01/01 11:23
感謝各位 已順利解決了 原來是兩個參數api那有不同的處理方式 所以我這兩個一樣的傳進去,其中一個會接受不到 ※ 編輯: RINPE (61.70.7.44), 01/07/2018 20:08:00