204(๋ด์ฉ ์์)๊ฐ ์ํ ์ฝ๋๋ก ๋ฐํ๋ ๊ฒ์ผ๋ก ์์ํ๋ ์์ฒญ์ ๋ํด Alamofire๋ ๋์ ์ด๋ฅผ ์ค๋ฅ๋ก ์ ์ถํฉ๋๋ค. ์๊ฐ ์ด๊ณผ๋ ์์ฒญ๊ณผ ์ํ ์ฝ๋๊ฐ ๋์ผํ ์ค๋ฅ๋ฅผ ๋ฐํํฉ๋๋ค.
๋ค์ ์ฝ๋๊ฐ ์ฌ์ฉ๋์์ต๋๋ค(Alamofire์ ๋งค์ฐ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฒ)
alamofireManager.request(request)
.validate(statusCode: 200..<400)
.responseJSON(options: .AllowFragments) { (response: Response<AnyObject, NSError>) in
handleAlamofireResponse(response)
}
์๋ ํ์ธ์ @borek2 ์ ๋๋ค .
๋ฐฉ๊ธ ๋ชจ๋ ๊ฒ์ด ์์๋๋ก ์๋ํ๋์ง ํ์ธํ๋ ํ ์คํธ๋ฅผ ๋ง๋ค์์ต๋๋ค.
func testDeleteWith204ResponseStatusCode() {
let expectation = expectationWithDescription("204 should succeed")
Alamofire.request(.DELETE, "https://httpbin.org/status/204")
.validate(statusCode: 200..<400)
.responseJSON(options: .AllowFragments) { response in
print(response.response)
print(response)
expectation.fulfill()
}
waitForExpectationsWithTimeout(timeout, handler: nil)
print("Yay...204 works as expected with responseJSON serializer")
}
์ด๊ฒ์ด ๊ทํ์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ณด์ฌ์ฃผ์ง ์๋๋ค๋ฉด ๋ณด๊ณ ์๋ ๋์์ ๋ณต์ ํ๋ ๋ค๋ฅธ ์๋ฅผ ์ ๊ณตํ์ญ์์ค. responseJSON
์ง๋ ฌ ๋ณํ๊ธฐ๋ฅผ ์ฌ์ฉํ ๋ .Success
์ผ์ด์ค๋ฅผ ์์ ํ๋๋ก ํ๋ JSON ์ง๋ ฌ ๋ณํ๊ธฐ ์ ์ฌ์ฉ์ ์ง์ 204 ์ฒ๋ฆฌ๊ฐ ์์ต๋๋ค.
์ง๊ธ์ ์ด ๋ฌธ์ ๋ฅผ ์ข ๋ฃํ๊ฒ ์ต๋๋ค. Alamofire์ ๋ฌธ์ ๊ฐ ์์ ์ ์๋ค๊ณ ํ๋จ๋๋ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ฉด ๊ธฐ๊บผ์ด ๋ค์ ๋ฌธ์ ์ด๊ณ ์ถ๊ฐ ์กฐ์ฌ๋ฅผ ํ๊ฒ ์ต๋๋ค.
๊ฑด๋ฐฐ. ๐ป
์ด๋ด @borek2 ๋น์ ์ ๋น์ ์ API๊ฐ ์ฝํ ์ธ ๊ธธ์ด ํค๋ ๊ฐํ์ ๋ณด๋ด์ง ์๋์ง ํ์ธํ๊ณ 0, ๋๋ 3 ์ผ ๋์ ํ๊ณ ๋ ํ์๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์๊ณ ํด๊ฒฐ์ฑ ์ ์ฐพ์์ต๋๋ค.
๋ฌธ์
์ค์ ๋ฌธ์ ๋ ๋ด API๊ฐ ๊ฐ ๊ฐํ์ ์ฌ์ฉํ์ฌ ์ฝํ
์ธ ๊ธธ์ด ํค๋๋ฅผ ๋ณด๋ธ ๋ค์ ์๋ต์ผ๋ก 0์ ๋ณด๋ด์ Alamofire๊ฐ ์ฝํ
์ธ ๊ธธ์ด๋ฅผ ํ์ธํ๊ณ ๊ทธ๋ ์ฝํ
์ธ ๊ธธ์ด ๊ฐํ์ด ์์์ ๋ฐ๊ฒฌํ๊ณ 0์ด๋ฏ๋ก ์๋ต ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ผ Alamofire๊ฐ ์ฝ์ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ์๋ฒ๊ฐ ์๋ฌด ๊ฒ๋ ๋ฐํํ์ง ์๊ณ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์๋ฒ๊ฐ ์๋ฌด ๊ฒ๋ ๋ฐํํ์ง ์๊ณ Alamofire๊ฐ ์๋ต์ ์ฝ์ผ๋ ค๊ณ ์๋ํฉ๋๋ค.
ํด๊ฒฐ์ฑ
์ํ ์ฝ๋๊ฐ 204์ผ ๋ api๊ฐ ์ฝํ
์ธ ๊ธธ์ด ํค๋ ๊ฐ grater๋ฅผ ๋ฐํํ์ง ์๋์ง ํ์ธํ๊ณ 0์ ๋ฐํํฉ๋๋ค.
@cnoon ์ฐ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ Alamofire๊ฐ 204 ์์ฒญ ์ฝ๋๋ฅผ ์ฒ๋ฆฌํ๋ ๋ก์ง๋ ๋ณ๊ฒฝํด์ผ ํ์ง๋ง ์์ ๊ฐ์ ๊ฒฝ์ฐ์๋ 204์ ์๋ต ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฏ๋ก ์๋ต ์ฝ๋๊ฐ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ์๊ฐ ์์ต๋๋ค. 204 ์ฝํ ์ธ ๊ฐ ์์ต๋๋ค
๊ฑด๋ฐฐ. ๐ป
@indrajitsinh ์ ์ ๊ฐ์ฌํฉ๋๋ค! alamofire ์ ๋ฐ์ดํธ ํ ๋ ์ด์ ๋ฌธ์ ๊ฐ ์์์ง๋ง ๋ค์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๊ทํ์ ์ ์์ ๊ธฐ์ตํ๊ฒ ์ต๋๋ค. ๋ต์ฅํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๋ด @borek2 ๋น์ ์ ๋น์ ์ API๊ฐ ์ฝํ ์ธ ๊ธธ์ด ํค๋ ๊ฐํ์ ๋ณด๋ด์ง ์๋์ง ํ์ธํ๊ณ 0, ๋๋ 3 ์ผ ๋์ ํ๊ณ ๋ ํ์๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์๊ณ ํด๊ฒฐ์ฑ ์ ์ฐพ์์ต๋๋ค.
๋ฌธ์
์ค์ ๋ฌธ์ ๋ ๋ด API๊ฐ ๊ฐ ๊ฐํ์ ์ฌ์ฉํ์ฌ ์ฝํ ์ธ ๊ธธ์ด ํค๋๋ฅผ ๋ณด๋ธ ๋ค์ ์๋ต์ผ๋ก 0์ ๋ณด๋ด์ Alamofire๊ฐ ์ฝํ ์ธ ๊ธธ์ด๋ฅผ ํ์ธํ๊ณ ๊ทธ๋ ์ฝํ ์ธ ๊ธธ์ด ๊ฐํ์ด ์์์ ๋ฐ๊ฒฌํ๊ณ 0์ด๋ฏ๋ก ์๋ต ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ผ Alamofire๊ฐ ์ฝ์ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์๋ฒ๊ฐ ์๋ฌด ๊ฒ๋ ๋ฐํํ์ง ์๊ณ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์๋ฒ๊ฐ ์๋ฌด ๊ฒ๋ ๋ฐํํ์ง ์๊ณ Alamofire๊ฐ ์๋ต์ ์ฝ์ผ๋ ค๊ณ ์๋ํฉ๋๋ค.
ํด๊ฒฐ์ฑ
์ํ ์ฝ๋๊ฐ 204์ผ ๋ api๊ฐ ์ฝํ ์ธ ๊ธธ์ด ํค๋ ๊ฐ grater๋ฅผ ๋ฐํํ์ง ์๋์ง ํ์ธํ๊ณ 0์ ๋ฐํํฉ๋๋ค.
@cnoon ์ฐ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ Alamofire๊ฐ 204 ์์ฒญ ์ฝ๋๋ฅผ ์ฒ๋ฆฌํ๋ ๋ก์ง๋ ๋ณ๊ฒฝํด์ผ ํ์ง๋ง ์์ ๊ฐ์ ๊ฒฝ์ฐ์๋ 204์ ์๋ต ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฏ๋ก ์๋ต ์ฝ๋๊ฐ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ์๊ฐ ์์ต๋๋ค. 204 ์ฝํ ์ธ ๊ฐ ์์ต๋๋ค
๊ฑด๋ฐฐ. ๐ป