最近在做購(gòu)物車(chē)刪除商品時(shí),發(fā)送DELETE請(qǐng)求時(shí)報(bào)參數(shù)為空肴茄。初步懷疑為請(qǐng)求的參數(shù)不正確歼郭,但是和后臺(tái)和安卓端確認(rèn)后參數(shù)并沒(méi)有問(wèn)題,使用postman測(cè)試時(shí)也沒(méi)有問(wèn)題百宇。最后懷疑是AFN的問(wèn)題。
最后查找資料后有一種說(shuō)法的DELETE方式和GET或者HEAD方式使用了同樣的方法,所以后臺(tái)是接受不到數(shù)據(jù)。
另外一種說(shuō)法是AFN默認(rèn)把get head delete方法的請(qǐng)求參數(shù)拼到了url的后面寺滚,從源碼看和上面的說(shuō)法其實(shí)是一致的。
解決方法為重寫(xiě)下面這個(gè)屬性屈雄,移除了@"DELETE" 玛迄。這樣AFN在發(fā)送DELETE請(qǐng)求時(shí)把參數(shù)json序列化,這樣后臺(tái)能成功接收棚亩。
manager.requestSerializer.HTTPMethodsEncodingParametersInURI = [NSSet setWithObjects:@"GET", @"HEAD", nil];