[intellij] http 기본 사용법

HTTP 요청에서 주석 사용하기

  • 요청 내에서 // 또는 #로 시작하는 줄은 주석으로 처리된다

      // 기본 요청
      # 기본 요청
      GET http://localhost:8000/users/1

HTTP 요청에 이름 설정하기

실행/디버그 구성, Search EverywhereRun Anything에서 요청을 쉽게 찾기 위해 요청에 이름을 지정할 수 있다.

  • 요청 위에 ###, # @name 또는 # @name =을 사용하여 이름을 지정한다.
### Request
GET http://localhost:8000/users/1

###
# @name AnotherRequest
GET http://localhost:8000/users/2

###
# @name AnotherRequest
GET http://localhost:8000/users/3

실행결과가 아래와 같이 표시된다.

image-20240905193516432

GET 요청의 간단한 형식 사용하기

  • GET 요청의 경우 요청 메소드를 생략하고 URI만 지정할 수 있다.

      // 기본 요청
      http://localhost:8000/users/1

    Java 컨텍스트에서 코드 자동 완성 ⌃CtrlSpace을 사용하여 @Path 주석을 기반으로 URI를 지정할 수 있다. Java 코드에서 @Path 주석이 변경되면 제안 목록의 내용도 반영된다.

여러 요청을 단일 파일로 구성하기

  1. 요청 끝에 ### 구분자를 입력하여 요청의 끝을 표시한다.

     // 기본 요청
     http://localhost:8000/users/1
    
     ###
  2. 구분자 아래에 또 다른 요청을 작성한다.

     // 기본 요청
     http://localhost:8000/users/1
    
     ###
    
     // GET 메소드를 사용한 두 번째 요청
     http://localhost:8000/users/2

긴 요청을 여러 줄로 나누기

  • 첫 번째 줄을 제외한 모든 쿼리 문자열 줄을 들여쓰기 한다.

      // 들여쓰기를 사용한 줄 바꿈
      http://localhost:8000/users/1
          /api
          /html
          /get
          ?id=123
          &value=content

    URL 부분의 들여쓰기 크기는 설정 | 편집기 | 코드 스타일 | HTTP 요청 | 탭 및 들여쓰기 | URL 부분 들여쓰기에서 구성할 수 있다.

  • 쿼리 문자열로 인해 URL이 너무 길어지면 전용 컨텍스트 작업을 사용하여 각 쿼리 매개변수를 새 줄에 배치할 수 있다. 쿼리 문자열 부분에 커서를 두고 ⌥Opt↩Enter(컨텍스트 작업 표시)를 누르고 쿼리 매개변수를 별도의 줄로 나누기(put query parameters on separate lines)를 선택합니다.

    변경 전

      GET http://localhost:8000/users/1?q=dummy&limit=10&offset=0&sort=asc&job=developer

    변경 후

      GET http://localhost:8000/users/1?
          q=dummy&
          limit=10&
          offset=0&
          sort=asc&
          job=developer

    쿼리 매개변수의 일관된 줄 바꿈을 강제하려면 설정 | 편집기 | 코드 스타일 | HTTP 요청 | 줄 바꿈 및 중괄호 | 쿼리 매개변수 줄 바꿈에서 HTTP 클라이언트 코드 스타일을 사용할 수 있다.

  • 마찬가지로 Content-Type: application/x-www-form-urlencoded이 포함된 요청의 본문을 형식화할 수 있다. 본문에 커서를 두고 ⌥Opt↩Enter(컨텍스트 작업 표시)를 누르고 form-urlencoded 매개변수를 별도의 줄에 나누기를 선택한다.

    변경 전

      POST https://ijhttp-examples.jetbrains.com/post
      Content-Type: application/x-www-form-urlencoded
    
      key1=value1&key2=value2&key3=value3&key4=value4&key5=value5

    변경 후

      POST https://ijhttp-examples.jetbrains.com/post
      Content-Type: application/x-www-form-urlencoded
    
      key1 = value1 &
      key2 = value2 &
      key3 = value3 &
      key4 = value4 &
      key5 = value5

    x-www-form-urlencoded 본문에 대한 줄 바꿈 구성을 위해 설정 | 편집기 | 코드 스타일 | HTTP 요청 | 줄 바꿈 및 중괄호 | Form-urlencoded 매개변수 줄 바꿈을 사용할 수 있다. = 앞뒤 및 & 앞뒤의 공백을 구성하려면 설정 | 편집기 | 코드 스타일 | HTTP 요청 | 공백을 사용한다.

요청 메시지 본문 제공하기

요청 내에서 요청 본문 앞에 빈 줄을 추가하고 다음 중 하나를 수행한다.

  • 요청 본문을 직접 입력합니다:

      // 요청 본문이 직접 제공된다.
      POST https://example.com:8080/api/html/post HTTP/1.1
      Content-Type: application/json
      Cookie: key=first-value
    
      { "key" : "value", "list": [1, 2, 3] }

    Content-Type 헤더 필드 값을 지원되는 언어 중 하나로 설정하면 해당 언어 조각이 HTTP 요청 메시지 본문에 자동으로 주입된다. Content-Type이 지정되지 않은 경우 수동으로 언어 조각을 주입할 수 있다.

  • Java 컨텍스트에서 코드 자동 완성 ⌃CtrlSpace을 사용하여 Accept 헤더 필드 값을 정의된 @Produces 주석을 기반으로 지정할 수 있다. Java 코드에서 @Produces 주석이 변경되면 제안 목록의 내용도 반영된다.

  • 파일에서 요청 본문을 읽으려면 < 기호 뒤에 파일 경로를 입력한다.

      // 요청 본문이 파일에서 읽혀집니다.
      POST https://example.com:8080/api/html/post
      Content-Type: application/json
    
      < ./input.json

multipart/form-data 콘텐츠 유형 사용하기

  • 요청의 Content-Type을 multipart/form-data로 설정한다. 파일을 multipart/form-data 메시지의 일부로 보내려면 Content-Disposition 헤더에 filename 매개변수를 포함시킨다.

      POST https://example.com/api/upload HTTP/1.1
      Content-Type: multipart/form-data; boundary=boundary
    
      --boundary
      Content-Disposition: form-data; name="first"; filename="input.txt"
    
      // 'input.txt' 파일이 업로드된다.
      < ./input.txt
    
      --boundary
      Content-Disposition: form-data; name="second"; filename="input-second.txt"
    
      // 'Text' 콘텐츠로 임시 'input-second.txt' 파일이 생성되어 업로드된다.
      Text
      --boundary
      Content-Disposition: form-data; name="third";
    
      // 'input.txt' 파일 내용이 일반 텍스트로 전송된다.
      < ./input.txt --boundary--

리다이렉션 방지하기

HTTP 요청이 리다이렉션되면(3xx 상태 코드 수신) 리다이렉션된 페이지 응답이 반환된다. 서비스 도구 창에서 요청 중에 발생한 모든 리다이렉션뿐만 아니라 리다이렉션된 페이지 응답을 볼 수 있다.

리다이렉션을 방지하려면, 실제 리다이렉션 응답 헤더(예: 301 또는 302)가 반환된다.

  • 요청 전에 @no-redirect 태그가 포함된 주석 줄을 추가한다.

      // @no-redirect
      example.com/status/301

    이미 리다이렉션된 요청이 있는 경우 서비스 도구 창의 Redirections 목록 옆에 있는 비활성화를 클릭하면 초기 요청에 @no-redirect 태그가 추가된다.

HTTP 요청 시간 초과 설정하기

HTTP 클라이언트는 서버와의 연결을 설정하는 데 60초, 진행 중인 연결에서 새로운 패킷을 기다리는 데 60초의 시간 초과가 있다. 이 두 가지 시간 초과를 모두 사용자 정의할 수 있다.

  • 설정된 연결에서 새 패킷에 대한 시간 초과를 설정하려면 요청 전에 @timeout 태그가 포함된 주석 줄을 추가한다.

      # @timeout 600
      GET example.com/api
  • 연결 시간 초과를 설정하려면 요청 전에 @connection-timeout 태그가 포함된 주석 줄을 추가한다.

      // @connection-timeout 2 m
      GET example.com/api

기본적으로 시간 초과 값은 초 단위이지만, 값 뒤에 시간 단위를 명시적으로 추가할 수 있다. ms는 밀리초, s는 초, m은 분을 나타낸다(예: 100 ms 또는 5 m).

출처

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유