[Proxyman] Breakpoint 로 API Request / Response 조작하여 디버깅하기

naljin
5 min readSep 7, 2024

--

들어가기 전에

개-하! 개발하다보면 API 요청이나 응답을 조작하고 싶을때가 있잖아여?

저는 프록시 툴로 Proxyman 을 사용하고 있고, 여기서는 API 에 대한 Breakpoint 를 활성화 할 수 있는데요

  • Request 에 걸면, 요청이 서버로 전송되기 전 해당 요청을 중지하고
  • Response 에 걸면, 앱에 응답이 전송되기 전에 중지 됩니다

따라서 이때 요청 / 응답을 수정하면 적당히 원하는 값을 테스트할 수 있는데요! 간단한 예시로 살펴보져 ㄱㄱ

Breakpoint 걸기

저는 Safari 주소창에서 helloworld 를 치면, hellonaljin 으로 검색 키워드를 바꿔서 요청하고 싶다고 해볼게여

이를 위해서 우선 조작을 원하는 API 요청을 찾아야겠져?

대충 필터링해서 찾아주고

우클릭 > Tools > Breakpoint 클릭하면

방금 클릭한 요청에 맞는 Matching Rule 을 자동으로 세팅해줍니다. 그리고 우측에 Request, Response 둘 다 브포를 걸겠다고 체크가 되어있는걸 확인할 수 있습니다.

그리고 해당 API 를 다시 trigger 하는 동작을 하면?! (여기서는 helloworld 다시 치기)

먼저 Request 에 대한 breakpoint 가 활성화 된 창을 볼 수 있습니다

요청 수정

이제 수정을 해봐야겠져

Query 쪽에 q 가 검색 키워드 같으니까

이 값을 hellonaljin 으로 바꾸고 Execute 시킬게여

이제 한번 더 response 에 대한 breakpoint 가 걸리는데, 여기서는 조작하고 싶은게 없으므로 그냥 Execute 하겠습니다

그럼 검색창에 키워드가 hellonaljin 으로 변경되어있는것을 볼 수 있습니당. 저희가 요청을 hellonaljin 으로 바꿨기 때문이죠!

응답 수정

이제 response 조작으로 가볼게여. 구글 한번 가줬으니까 네이버로 가서! 검색창에 있는 검색어를 입력해주세요 -> 드디어 로봇청소기 삼 으로 바꿔보고 싶다고 할게여

그럼 아까랑 똑같이 응답을 조작하고 싶은 api (m.naver.com) 에 우클릭을 해서 Tools > Breakpoint 를 걸어줍니다

아 근데 proxyman 짜치는건.. 브레이크 포인트 걸 수 있는 최대 개수가 1개라는 것…… 그래서 이전에 걸어뒀던 브포는 지워줘야합니다…. 하…. 10만원 프로 사고 광명 찾아??

이번에는 Request 쪽에는 조작하고 싶은게 없으니까 Response breakpoint 만 걸어둘게요.

그리고 똑같이 해당 조건을 다시 트리거하면! Response 오기 전에 브포가 걸리겠져?? 여기서 응답값을 조작한 후 Excute 합니다.

그러면 이렇게 응답값이 잘 조작되어서 오는걸 확인할 수 있져

마무리

뭐…. 막상 살펴보니 별 내용없었져??

만약 응답 자체를 내 로컬에 있는 파일로 대체하고 싶다!! 하는 map local 기능을 사용하고 싶으신 분들은 아래 링크를 참고해보시구여!

나는 Charles 쓴다고! Fiddler 쓴다고! HTTP Tookit 쓴다고!!! 하시는 분들은?! 알아서 찾아보세요..? ㅎㅎ

HTTP Toolkit 은 modify 쪽에서 조작 하시는거 같더라구요………..? 개수 제한 없어서 좋아보임………

튼…..전 프록시맨 쓰고 있으니까? 여기까지 할게여! 여러분이 쓰시는 좋은 프록시 툴 있으면 추천해주세여!

그럼 20000!

출처

--

--

No responses yet