>

파이썬 요청 라이브러리를 사용하여 사용 가능한 모듈을 만들려고하는데 모듈이 오류없이 실행되지만 응답을 반환합니다

"{\ n \"code \ ": \"generic_err_missing_required_header \ ", \ n \"message \ ": \"없는 헤더 : [X-chkp-sid] \ "\ n}"

헤더가 올바르게 정의 된 것처럼 보이지만.

아래의 모듈 코드 :

from ansible.module_utils.basic import AnsibleModule
import requests
def somefunction(sid):
    url = '<someurl>'
    headers = {
        'Content-Type': 'application/json',
        'X-chkp-sid': sid,
    }
    data = {
        'type': 'tag'
    }
    response = requests.post(url,headers,data,verify=False,timeout=10)
    return response.content
def main():
    module_args = dict(
        sid = dict(type='str', required=True)
    )
    result = dict(
        changed=False,
        original_message='',
        message=''
    )
    module = AnsibleModule(
    argument_spec=module_args,
    supports_check_mode=True
    )
    if module.check_mode:
        return result
    sid = module.params['sid']
    result=somefunction(sid)
    module.exit_json(somefunction_output=result)
if __name__ == '__main__':
    main()

가능한 uri 모듈과 동일한 헤더/본문 파라미터를 사용하여 성공적으로 응답했습니다. 다른 아이디어가 있습니까?

  • 답변 # 1

    requests.post() 에 대한 대부분의 주장  일반 위치 인수 대신 키워드 스타일 인수 여야합니다.

    대신 사용해보십시오 :

    response = requests.post(url,data=data,headers=headers,verify=False,timeout=10)
    
    

  • 답변 # 2

    somefunction()  아무것도 반환하지 않으므로 반환 값은 None 입니다. .

    아마도 당신은 return requests.post(url,headers,data,verify=False,timeout=10) 를 원했다 ?

관련 자료

  • 이전 webpack과 관련하여 processenv 변수를 사용하는 방법
  • 다음 amazon web services - AWS Glue를 사용하는 동안 액세스 할 수있는 임시 폴더가 있습니까?