[Original] Python 요청에서 params, data, json 매개변수의 전체 의미와 curl에 해당하는 매개변수를 전달하는 방법

먼저 114 과제를 살펴보겠습니다: CTFLEARN에서 POST 연습

이 웹사이트는 POST를 통한 인증이 필요합니다. 하지만 누군가 우리 사이트를 훼손한 것 같습니다.아직 인증할 수 있는 방법이 있는 것은 아닐까요? http://165.227.106.113/post.php

http://165.227.106.113/post.php 페이지의 소스 코드를 확인하면 사용자 이름: admin | 비밀번호: 71urlkufpsdnlkadsf를 찾을 수 있습니다. 간단히 말해서 이 질문은 http://165.227로 게시물 요청을 보내야 합니다. 106.113/post.php , 사용자 이름 및 비밀번호 매개변수를 제출하여 플래그를 가져옵니다.

해결 방법 1: Python의 요청을 사용하여 게시물 요청 보내기

import requests

userinfo = {
    "username": "admin",
    "password": "71urlkufpsdnlkadsf"
}
# 方法1,使用data发送,此题的正确答案
response = requests.post("http://165.227.106.113/post.php", data=userinfo)
print(response.text)

# 方法2: 使用json
# response = requests.post("http://165.227.106.113/post.php", json=userinfo)
# print(response.text)

# 方法3:直接在url上加参数
# response = requests.post("http://165.227.106.113/post.php?username=admin&password=71urlkufpsdnlkadsf")
# print(response.text)

# 方法4: 使用params参数,和方法3等同
# response = requests.post("http://165.227.106.113/post.php", params="username=admin&password=71urlkufpsdnlkadsf")
# print(response.text)

파이썬의 네 가지 방법의 차이점은 무엇입니까? 작성자 guggle(고대 csdn의 누군가)은 이 네 가지 요청 방법의 차이점이 요청의 URL, 요청 헤더의 Content-Type 및 요청 본문이 다르다는 점에 있음을 발견했습니다.
관심 있으신 분들은 이전에 제가 쓴 글도 참조하실 수 있습니다: [원본] 파이썬이 요청을 사용하여 게시 요청을 보낼 때, 데이터를 사용합니까? 아니면 json을 사용합니까? (제 짧은 책 블로그에서 옮겨옴)

방법 1: 데이터 사용

URL: http://165.227.106.113/post.php
header中的Content-Type:application/x-www-form-urlencoded
body:username=admin&password=71urlkufpsdnlkadsf

방법 2: json 사용

URL: http://165.227.106.113/post.php
header中的Content-Type:application/json
body:{“username”: “admin”, “password”: “71urlkufpsdnlkadsf”}

방법 3 및 방법 4: URL에 매개변수를 직접 추가하고 매개변수 사용

URL: http://165.227.106.113/post.php?username=admin&password=71urlkufpsdnlkadsf
Content-Type in header: 선언
본문 없음: 없음

해결 방법 2: 컬 사용

컬 http://165.227.106.113/post.php -X POST -d "사용자 이름=admin&password=71urlkufpsdnlkadsf"

추신: 큰따옴표를 사용해야 합니다! ! ! , 작은 따옴표를 사용하면 프롬프트 '암호'는 내부 또는 외부 명령, 실행 가능한 프로그램 또는 배치 파일로 인식되지 않습니다.
curl의 json 요청 방식, 저자 guggle(csdn 고대인)은 당분간 시도하지 않았기 때문에 글쓰기 방법을 게시하지 않겠습니다. ) 추가하겠습니다

해결 방법 3: 크롬의 우편 배달부 플러그인 사용

Postman 플러그인 다운로드 및 사용 방법

추천

출처blog.csdn.net/guggle15/article/details/120362917