RestFul 방식으로 통신 테스트 진행 해보겠다.
RestFul 방식이란 uri 주소만 봐도 어떠한 동작이 수행 될 것인지 알 수 있는것이다.
GET, POST, PUT(FETCH), DELETE 가 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
import sys
import io
import requests, json
sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8')
#get 날리기
#r = requests.get('https://api.github.com/events')
#r.raise_for_status() #에러가 발생했을때 예외 발생 시켜줌
#print(r.text)
jar = requests.cookies.RequestsCookieJar()
jar.set('name', 'kim', domain='httpbin.org', path='/cookies')
#r = requests.get('http://httpbin.org/cookies', cookies=jar)
#r.raise_for_status()
#print(r.text)
#r = requests.get('https://github.com', timeout=3) #3초동안 대기하겠다
#print(r.text)
#post 날리기
#r = requests.post('http://httpbin.org/post', data={'name':'kim'}, cookies=jar)
#print(r.text)
payload1 = {'key1': 'value1', 'key2': 'value2'} #dict
payload2 = (('key1','value1'), ('key2','value2')) #tuple
payload3 = {'some':'nice'}
#r = requests.post('http://httpbin.org/post', data=payload1)
#print(r.text)
#r = requests.post('http://httpbin.org/post', data=payload2) #튜플도 폼데이터 형데로 보냄
#print(r.text)
r = requests.post('http://httpbin.org/post', data=json.dumps(payload3)) #json데이터로 만들어서 보냄
print(r.text) # form 이 아닌 json측에 데이터들 출력 된다.
|
cs |
3-3-1.py
get, post 방식으로 테스트를 진행했다.
결과값을 확인해보자.
post 방식으로는 데이터를 dict 형태로 실어 보낼 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import sys
import io
import requests, json
#Rest : POST, GET, PUT:UPDATE, REPLACE (FETCH : UPDATE, MODIFY), DELETE
sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8')
payload1 = {'key1': 'value1', 'key2': 'value2'} #dict
payload2 = (('key1','value1'), ('key2','value2')) #tuple
payload3 = {'some':'nice'}
#put 사용
#r = requests.put('http://httpbin.org/put', data=payload1)
#print(r.text)
# 포스트 첫번째 글을 등록했다. 라는것을 url통해 예측 가능, 등록된 글은 id가 1로 되었다.
#r = requests.put('https://jsonplaceholder.typicode.com/posts/1', data=payload1)
#print(r.text)
#key와 value를 response해주었음.
#fake rest api
#delete 사용
#첫번째 글 지워라 라는 의미
r = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print(r.text)
|
cs |
3-3-2.py
put, delete 를 사용했다.
put 같은경우 https://jsonplaceholder.typicode.com/posts/1 에 데이터값을 추가하여 요청할 경우
글을 등록시키는 형태, 리턴값으로 id를 돌려준다.
'언어 > python&웹 크롤링' 카테고리의 다른 글
[python&웹 크롤링] 12. requests 모듈 기초(1) (0) | 2021.01.02 |
---|---|
[python&웹 크롤링] 11. 네이버 금융 정보 가져오기 (0) | 2021.01.01 |
[python&웹 크롤링] 10. BeautifulSoup 사용 및 웹 파싱 기초(2) (0) | 2020.12.28 |
[python&웹 크롤링] 9. BeautifulSoup 사용 및 웹 파싱 기초(1) (0) | 2020.12.18 |
[python&웹 크롤링] 8. youtube 동영상 다운로드 및 mp3 변환 (2) | 2020.12.09 |