저는 항상 XML을 보내는 서버와 작업하면서 응답합니다. 하지만 때로는 서버가 부족하거나 무언가가 나에게 HTML 페이지 (오류에 대한 정보를 제공하는 html 페이지)를 보냄으로써 나를 알려주지 만 예상하지는 못했고 XML 파서가 충돌했다.
나는 DefaultHttpClient()를 사용하고 있으며, 다음과 같은 헤더를 보냅니다. mHttpRequest.setHeader("Accept", "text/xml");
XML (또는 다른 특정 형식) 응답을 얻는 올바른 방법은 무엇입니까?응답이 HTML 대신 XML 형식인지 확인하는 방법은 무엇입니까?
답변
응답의 콘텐츠 형식 헤더를 확인할 수 있습니까? 같은
뭔가 (내가 제대로 Android documentation을 이해한다면) :
"text/xml".equals(httpResponse.getEntity().getContentType().getValue());
(일반적으로) 그것은 "text/xml"일뿐 * 수도있다. 원자 피드는 매우 눈부 시며 (흔한) 반례이다. "/ xml"* 및/또는 * "+ xml"과 일치하는 마임을 찾는 것이 더 좋습니다. [인터넷 미디어 유형] (http://en.wikipedia.org/wiki/Internet_media_type)을 참조하십시오. –
모든 XML에는 처음에는 문서 설명자 <?xml version="1.0" encoding="utf-8"?>
이 들어 있습니다. 이것을 파싱하기 전에 이것을 확인할 수 있습니다.
그러나 난 당신이 파서에서 오류 처리 및 결과 검증이 필요하다고 생각합니다. 네트워크는 안전한 환경이 아닙니다. 네트워크에서 반쯤 깨진 XML, 변형 된 XML 또는 위조 된 XML을 쉽게 얻을 수 있습니다. 좋은 파서가이를 감지하고 충돌을 일으키지 않고 해당 오류를보고해야합니다.
으로 시작하는 것은 아니지만, UTF-8이 아닐 수도있다. 그러나 그렇다. 유효한 XML 문서에는 XML 선언이 필요하다. (그럼 다시, 세상은 완벽하지 않습니다 :-) –
나는 그것을 얻었다. 그냥 잡힌 예외를보고합니다. 그것은 전체 전체 애플 리케이션을 크래시하지 않습니다. – Stan
- 1. 개체가 특정 형식인지 확인하는 방법
- 2. jpeg가 RGB 또는 CMYK 형식인지 확인하는 방법은 무엇입니까?
- 3. 주어진 파일이 올바른 단어 파일 형식인지 확인하는 방법은 무엇입니까?
- 4. 안드로이드에서 서버로부터 반환 된 응답이 이미지인지 아닌지 확인하는 방법은 무엇입니까?
- 5. 날짜가 mm/DD/yyyy 형식인지 확인하는 방법 C#
- 6. HTTP 응답이 완료되었는지 확인하는 방법
- 7. HTML jquery 응답이 IE에 캐시됩니다.
- 8. 응답이 완료되면 알려주는 방법은 무엇입니까?
- 9. XML-RPC 서버가 작동하는지 확인하는 방법은 무엇입니까?
- 10. XML 구문 분석이 완료되었는지 확인하는 방법은 무엇입니까?
- 11. XML 노드가 null을 반환하는지 확인하는 방법은 무엇입니까?
- 12. html 컨트롤이 있는지 확인하는 방법은 무엇입니까?
- 13. localhost에서 실행중인 HTML/CSS를 확인하는 방법은 무엇입니까?
- 14. 개체가 동일한 형식인지 확인하십시오.
- 15. 응답이 코코아에서 유효한 JSON인지 확인하는 방법
- 16. Windows 환경에서 .txt 파일이 ASCII 또는 UTF-8 형식인지 확인하는 방법은 무엇입니까?
- 17. 내 War 파일에 포함 된 스크립트가 Unix 텍스트 형식인지 확인하는 방법은 무엇입니까?
- 18. 내가 가지고있는 인증서 파일이 .pem 형식인지 확인하는 방법
- 19. 인스턴스가 특정 유형 또는 파생 형식인지 확인하는 방법
- 20. 개체가 기본 제공 데이터 형식인지 확인하는 기능이 있습니까?
- 21. 이 어떤 날짜 형식인지 확인하는 데 도움이 필요합니다.
- 22. 어떤 데이터 형식인지 알기 전에 변수를 선언하는 방법은 무엇입니까?
- 23. cURL을 사용할 때 XML 응답이 없음
- 24. MySQL 커넥터가있는 Java Servlet의 XML 응답이 느림
- 25. 응답이
- 26. 이러한 결과를 xml 대신 html 순서가 지정되지 않은 목록 양식으로 인쇄하는 방법은 무엇입니까?
- 27. HTTP 응답이 변경 되었습니까?
- 28. 404.html 대신 500.html
- 29. jersey에서 xml 대신 json으로 기본 설정하는 방법은 무엇입니까?
- 30. 콘솔 대신 파일에 기록하도록 Apache XML-RPC를 구성하는 방법은 무엇입니까?
응답의 상태 코드를 올바르게 확인하고 있습니까? HTML 페이지로 연결되는 오류 인 경우 200 OK를 받아서는 안됩니다. – FRotthowe
현재 나는 모르겠다. 나는 반환 된 코드를 해결하려고 노력할 것이다 – Stan