실제로 내 요청이 작동하는 이유 AFJSONRequestSerializer
와 그렇지 않은 이유는 무엇입니까 AFHTTPRequestSerializer
?
나는 설정했다
responseSerializer.acceptableContentTypes?.insert("application/json")
를 위해 AFHTTPRequestSerializer
작동하지 않으며,하지만해야한다.
간단한 사전을 보냅니다.
{
"approval_required" = 1;
birthdate = "2016-03-11";
gender = male;
name = Bartolo;
password = password1234;
username = "super user";
}
여기 에 비슷한 질문이 있지만 왜 그런지 설명이 없습니다 .
누구든지 설명 할 수 있습니까?
acceptableContentTypes
가 약간은 HTTP 요청 또는 JSON 요청인지를 요청의 형식, 즉 함께 할 수 있습니다. 요청 serializer의 기본 책임은 지정된 형식으로 요청을 만드는 것입니다. 따라서 선택에 requestSerializer
따라 HTTP 요청 (예 : a Content-Type
of application/x-www-form-urlencoded
) 또는 JSON 요청 (예 : a Content-Type
of application/json
)을 만들지 여부 가 결정 됩니다. 은 acceptableContentTypes
단지 형식 (들) 앱이 응답을 받아 들일 것입니다 무엇에 지정 요청을 할 수 있습니다. (솔직히,을 지정하지 acceptableContentTypes
말고 올바른을 사용해야합니다 responseSerializer
.) 그러나 요청 형식과 허용 된 응답 형식은 완전히 다른 두 가지입니다. 실제로 HTTP 요청 만 받아들이고 JSON 응답 만 제공하는 웹 서비스가있는 것은 드문 일이 아닙니다.
귀하의 경우 JSON 요청을 예상하는 웹 서비스가있는 것 같습니다. 을 지정 AFHTTPRequestSerializer
하면 요청이 JSON 형식이 아니므로 이해할 수 없습니다. 그리고 지정 acceptableContentTypes
은 요청 자체가 JSON이 아니라는 사실을 변경하지 않습니다.
그건 그렇고 Charles 또는 Wireshark 와 같은 도구 는 네트워크 코드를 디버깅하는 데 매우 유용하며 이러한 두 가지 유형의 요청의 차이를 진단하는 데 도움이 될 것입니다. 이러한 도구 중 하나를 사용하여 원시 요청 / 응답을 관찰하면 차이가 눈에 띄게 나타납니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다