복붙노트

[PYTHON] python urllib2를 사용하여 로그인 용 json 데이터를 보내는 방법

PYTHON

python urllib2를 사용하여 로그인 용 json 데이터를 보내는 방법

파이썬 urllib2를 사용하여 로그인 동작을 시뮬레이트하고 싶습니다. 피들러를 사용하여 패킷을 잡아 내고 로그인 작업은 그냥 아약스 요청이며 사용자 이름과 암호는 json 데이터로 전송되지만, urllib2를 사용하는 방법을 모릅니다. json 데이터를 보내려면 ...

해결법

  1. ==============================

    1.

    import urllib2
    import json
    # Whatever structure you need to send goes here:
    jdata = json.dumps({"username":"...", "password":"..."})
    urllib2.urlopen("http://www.example.com/", jdata)
    

    여기서는 HTTP POST를 사용하여 사용자 이름과 암호로 간단한 json 객체를 전송한다고 가정합니다.

  2. ==============================

    2.다음 사항에 유의하십시오.

    다음 사항에 유의하십시오.

  3. ==============================

    3.요청시 데이터를 지정할 수 있습니다.

    요청시 데이터를 지정할 수 있습니다.

    import urllib
    import urllib2
    
    url = 'http://example.com/login'
    values = YOUR_CREDENTIALS_JSON
    
    data = urllib.urlencode(values)
    req = urllib2.Request(url, data)
    response = urllib2.urlopen(req)
    the_page = response.read()
    
  4. ==============================

    4.이것을 달성하기 위해 '요청'파이썬 라이브러리를 사용할 수 있습니다 :

    이것을 달성하기 위해 '요청'파이썬 라이브러리를 사용할 수 있습니다 :

    http://docs.python-requests.org/en/latest/index.html

    다음 예제를보실 수 있습니다 :

    http://docs.python-requests.org/ko/latest/user/quickstart/#more-complicated-post-requests (보다 복잡한 POST 요청)

    >>> import requests
    >>> payload = {'key1': 'value1', 'key2': 'value2'}
    >>> r = requests.post("http://httpbin.org/post", data=payload)
    

    urlencoded 데이터 대신 JSON을 보내려고하면 파이썬이 좋은 헤더를 설정하지 않는 것 같습니다.

  5. from https://stackoverflow.com/questions/4348061/how-to-use-python-urllib2-to-send-json-data-for-login by cc-by-sa and MIT license