http를 통해 json을 수락하고 데이터를 처리 한 다음 json을 요청한 클라이언트로 되 돌리는 jsonrpc2 서버를 만들려고합니다.python jsonrpc2 클라이언트 예가 httplib을 사용하여 원격 hello world 예제에 연결하고 있습니까?
나는 rpc 서버와 wsgi에 상당히 익숙하며 django와 같은 웹 프레임 워크의 일부로 만 사용했습니다.
jsonrpc2 설명서에 제공된 예제를 따르려고합니다. 첫 번째 단계는 서비스 나 서비스가 내가 원격 시스템에서 브라우저를 사용하고 탐색 할 때부터 노력하고 있습니다 알고
runjsonrpc2 hello
runserver :8080
을 시작하는 파일 hello.py
def greeting(name):
return dict(message="Hello, %s!" % name)
다음 단계가 포함를 만드는 http://myip.dydns.org:8080는, 그것은 "405 방법이 허용되지 않음"내가 다음 단계는 내가 힘든 시간을 인식하지하고 무엇을 내 서버 쉘
DEBUG:root:jsonrpc
DEBUG:root:check method
에 디버그 정보를 참조로 응답합니다. json을 서비스에 보내고 응답을 얻으려면 python 클라이언트를 만드는 방법을 알고 싶습니다. 내가 뭘하려
은 다음과 같습니다
>>> from httplib import HTTPConnection
>>> h = HTTPConnection("myip.dydns.org:8080")
>>> from json import JSONEncoder
>>> call_values = {'jsonrpc':'2.0', 'method':'greeting', 'id':'greeting'}
파이썬을 사용하여 웹 서비스의 응답을 얻기 위해하는 단계 무엇인가.
슬프게도 jsonrpc2 문서는 로컬 테스트를 위해 웹 테스트 라이브러리의 TestApp만을 사용합니다.
원격 컴퓨터에서 클라이언트를 생성하고 인사말 기능에 대한 응답을받는 샘플 Python 코드를 찾을 수 없습니다.
누군가 나를 도와 줄 수 있습니까?
편집 : 조금 더 있습니다. 하지만 난 아직도 내가 서버를 참조 응답
>>> from httplib import HTTPConnection
>>> con = HTTPConnection("myip.dyndns.org:8080")
>>> import json
>>> con.request('POST', '/', json.dumps({"jsonrpc": "2.0", "method": "casoff_jsonrpc2.greeting", "id":1.0,"params":{"name":"harijay"}},ensure_ascii=False).encode('utf-8'), {'Content-Type': 'application/json;charset=utf-8'})
의 내용을 얻을 수없는 다음 껍질
DEBUG:root:jsonrpc
DEBUG:root:check method
DEBUG:root:check content-type
DEBUG:root:response {"jsonrpc": "2.0", "id": 1.0, "result": {"message": "Hello, harijay!"}}
에 그러나 클라이언트에서 에코. 나는 결과를 얻는 방법을 모른다.
EDIT2 : 나는 마침내,
>>> con.getresponse().read()
.디버그 : root : jsonrpc DEBUG : root : check method DEBUG : root : content-type을 확인하십시오. – harijay
그래서 요청 라이브러리를 통해 ">>> r 메시지를 사용하여 200 응답을 얻고 있습니다. <응답 [200]> >>> r.text '' ""jsonrpc ":"2.0 ","id ": null,"오류 ": {"메시지 ":"구문 분석 오류 ","코드 " -32700}} ' " – harijay
당신은 전부 거기 있습니다. r.json()을 호출하면 필요한 사전이 반환됩니다. –