Requests 포스트 요청 데이터에 사전 중첩

1985 단어

1. Post 요청, 데이터 안에 사전을 끼워넣기


Requests에서 Post 요청을 보내면 데이터에서 사전을 중첩하는 일반적인 형식은 다음과 같습니다.
info = {
    "appid": "123",
    "checkin_type": "6",
    "role": "1",
    "stunum": "15812086122"
    }
form_data = {
    'Data': '%s' % info,
    'MsgType': 'APP_SEND_CARDCHECKIN_BYSTUNUM'
}
result = requests.post(url, data=form_data)

주의해야 할 것은 반드시 'Data': '%s' % info 포맷으로 출력하는 이런 형식으로 끼워 넣은 사전을 Data에게 전달해야 한다. 만약에 infovalue으로 직접 Data'Data': info을 부여하면 요청은 성공하지 못한다.
{'error_code': '505', 'error_msg': 'Data '}

보통post가 데이터 파라미터를 전송할 때 요청 형식은 일반적으로 Content-Type: application/x-www-form-urlencoded 형식이고 공식적인 설명에 따르면 이다. 그래서 데이터에 끼워 넣은 사전은 문자열로 처리해야만 정상적으로post를 보낼 수 있다는 의문이 잠재되어 있는가??

2. 포스트에서 자주 사용하는 요청 방식

  • json 포맷으로 전송 캡처 후 raw 포맷으로 전환 Content-Type: application/json
  • import requests
    import josn
    
    payload = {
    'a': 1
    'b': 2
    }
    #  , payload josn 
    payload = josn.jump(payload)
    res = requests.post(url, data=payload)
    
    #  , josn 
    res = requests.post(url, josn=payload)
    
  • 전삼이form-data 포맷으로 캡처한 후raw 포맷으로 변환하면 Content-Type: application/x-www-form-urlencoded을 볼 수 있다. 이때 사전payload를 매개 변수 데이터에 직접 전달하면 된다. 여기서 주의해야 할 것은payload에 사전을 끼워 넣으면 문자열형으로 바꾸고
  • 에 넣어야 한다는 것이다.
    import requests
    
    payload = {
    'a': 1
    'b': 2
    }
    res = requests.post(url, data=payload)
    
  • 테이프 파일post 업로드 파일은 먼저 파일을 구성해야 한다. 형식은 다음과 같다. fp는 파일 경로이고 구조된 파일을 files에 전송하면
  • import requests
    
    file = {
    'file_name': open(fp, 'rb') 
    }
    res = requests(url, files=file)
    

    OK!


    ~ ~ ~
    반걸음을 내딛지 않으면 천리까지 갈 수 없다.

    좋은 웹페이지 즐겨찾기