문제

따라서 공식 XML-RPC 표준은 64비트 값을 지원하지 않습니다.그러나 현대에는 64비트 값이 점점 더 보편화되고 있습니다.

이것들을 어떻게 처리하나요?가장 일반적인 XML-RPC 확장은 무엇입니까?어떤 언어 바인딩이 있나요?저는 특히 Python과 C++에 관심이 있지만 모든 정보에 감사드립니다.

도움이 되었습니까?

해결책

실제로 일부 라이브러리는 64비트 확장을 지원하지만 표준은 없는 것 같습니다. xmlrpc-c, 예를 들어, 소위 i8이 있지만 Python에서는 작동하지 않습니다(적어도 기본적으로는 작동하지 않습니다).

나는 다음 중 하나를 권장합니다:

  • 정수를 직접 문자열로 변환하고 그대로 보냅니다.XMLRPC는 어쨌든 이를 문자열로 변환하므로 이것이 합리적이라고 말하고 싶습니다.
  • 두 개의 32비트 정수로 나누어서 보내십시오.

다른 팁

데이터 유형으로 "i8"을 사용하는 것이 점점 더 일반화되고 있습니다.나는 최근 이것을 Perl XML-RPC 모듈에 추가했습니다(http://metacpan.org/pod/RPC::XML) Java로 작성된 서버와 작업하기 위해 필요한 대규모 그룹의 요청에 대한 응답입니다.서버가 어떤 툴킷을 사용했는지는 모르겠지만 이미 i8을 유형으로 받아들이고 있었습니다.

아직 해결해야 할 문제 중 하나는 "i4"에 대한 "int" 별칭이 현재 i4와 마찬가지로 i8도 허용해야 하는지 여부입니다.또는 i8로 입력된 매개변수가 i4로 입력된 입력을 조용히 받아들여야 하는 경우입니다.XML-RPC는 SOAP의 모든 적용 범위가 필요하지 않을 때 편리한 경량, 낮은 오버헤드 프로토콜로서 큰 잠재력을 가지고 있지만 REST와 SOAP 간의 종교 전쟁에서는 종종 간과됩니다.

XML-RPC는 원본 작성자에게 허가를 받을 수만 있다면 일부 업데이트와 개정이 필요합니다...

나는 XMLRPC가 어떻게 확장될 수 있는지에 대해 아무것도 모르지만 발견했습니다. 이 메일 주제에 대해:

XML -RPC에서는 모든 것이 문자열로 전송됩니다. 따라서 명시 적 변환 기능을 호출하기위한 추가 서투른 점을 제외하고는 선택이 실제로 그렇게 나쁘다고 생각하지 않습니다.

그러나 XML-RPC에는 2 ** 32 이상의 정수를 나타낼 수있는 데이터 유형이 없습니다.정밀도를 잃어버린 경우 복식을 사용할 수 있습니다 (그러나 여전히 발신자에서 명시 적으로 변환해야합니다).

XML-RPC.NET 릴리스 2.5.0(2010년 9월 5일)부터 <i8>을 지원했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top