后台 Api 中单个参数的时候没有指定参数名,而 Alamofire 中的 parameters 是字典类型的。我尝试着 param = ["": "参数"] 发现是不行的。在 AFN 中因为参数是 id 类型的,所以可以直接将一个字符串扔进去。求解 Alamofire 中怎么做 T T (后台有很多这样的 Api,安卓那边都可以,所以没必要改 Api 了。。。。)
param = ["": "参数"]
认证高级PHP讲师
scheme://host/path?key=value&key=value在get方式中你傳入的parameters到後邊都是處理成上邊的key=value這樣的形式伺服器拿到這樣的url 然後根據key去取相應的value
其實AFN在處理NSString的param時url為scheme://host/path?null=value伺服器當且僅當在單一參數可以這樣處理吧 反正拿到的value就是需要的和key無關
從上邊的邏輯分析伺服器處理url有2種情況一種只要只有一個value就直接取它的值那麼你隨便給個key試試看了另一種只在key為null而value不為null下才觸發那麼用param = @{[NSNull null]: param} 試試看還不行就去看看代碼alamofire是怎麼把parameters處理成query的查看下完整的url 確定是否是alamofire過濾了(ps 沒寫過伺服器程式碼和alamofire 很多是猜測僅供參考)
不指定參數名稱,可能就是把這個當作參數,例如那種將整個請求的上送參數當作一個進行處理xml,json來處理的。 alamofire沒用過,你可以找下有沒有上送一個json字串的那種方式,也是同樣沒有定義參數名稱的。
Alamofire 的 request 方法裡, parameters 只能是個字典,這有點不靈活了。不過你可以嘗試用下面這個函數:
request(URLRequest: URLRequestConvertible) -> Request
自己建立一個 NSMutableURLRequest,設定它的 header, body, 然後傳給上面那個 request 函數。自己建立 NSMutableURLRequest 是參數可以很靈活,不要求非得是字典。
我最後的處理是直接在URL後面拼接這個參數值 直接”path+?參數“ 然後轉成UTF8 。一般來說直接傳參數的都是get類型的。
請問樓主解決了沒有,我遇到了跟你一樣的問題。很困擾。如果您已經解決了問題。請聯絡我一下。 QQ:664071973
scheme://host/path?key=value&key=value
在get方式中你傳入的parameters到後邊都是處理成上邊的key=value這樣的形式
伺服器拿到這樣的url 然後根據key去取相應的value
其實AFN在處理NSString的param時url為scheme://host/path?null=value
伺服器當且僅當在單一參數可以這樣處理吧 反正拿到的value就是需要的和key無關
從上邊的邏輯分析伺服器處理url有2種情況一種只要只有一個value就直接取它的值那麼你隨便給個key試試看了另一種只在key為null而value不為null下才觸發那麼用param = @{[NSNull null]: param} 試試看還不行就去看看代碼alamofire是怎麼把parameters處理成query的查看下完整的url 確定是否是alamofire過濾了
(ps 沒寫過伺服器程式碼和alamofire 很多是猜測僅供參考)
不指定參數名稱,可能就是把這個當作參數,例如那種將整個請求的上送參數當作一個進行處理xml,json來處理的。
alamofire沒用過,你可以找下有沒有上送一個json字串的那種方式,也是同樣沒有定義參數名稱的。
Alamofire 的 request 方法裡, parameters 只能是個字典,這有點不靈活了。不過你可以嘗試用下面這個函數:
自己建立一個 NSMutableURLRequest,設定它的 header, body, 然後傳給上面那個 request 函數。自己建立 NSMutableURLRequest 是參數可以很靈活,不要求非得是字典。
我最後的處理是直接在URL後面拼接這個參數值 直接”path+?參數“ 然後轉成UTF8 。一般來說直接傳參數的都是get類型的。
請問樓主解決了沒有,我遇到了跟你一樣的問題。很困擾。如果您已經解決了問題。請聯絡我一下。 QQ:664071973