最近和服務端調用接口的時候發現不能正常獲取到傳遞的參數。但是Android和Swift的Alamofire卻可以正常訪問。百思不得騎姐啊...不,是其解... 和服務端聯合測試的發現,在獲取參數的時候,獲取到的是一個類似于get請求的參數(account=123&pwd=123)的形式,明明是post,為何去參數卻成了get的形式呢?自然想到AFN的AFHTTPSessionManager
指定的requestSerializer
有問題,這個參數直接影響的是HttpHeader中的一些參數。服務端很可能對Header中的參數有特殊的處理。結合剛才的描述,想到需要設置Content-Type
類型,去指定request中的內容類型。
解決方法:
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];