HTTP 요청에서 주석 사용하기
요청 내에서
//
또는#
로 시작하는 줄은 주석으로 처리된다// 기본 요청 # 기본 요청 GET http://localhost:8000/users/1
HTTP 요청에 이름 설정하기
실행/디버그 구성, Search Everywhere 및 Run 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
실행결과가 아래와 같이 표시된다.
GET 요청의 간단한 형식 사용하기
GET 요청의 경우 요청 메소드를 생략하고 URI만 지정할 수 있다.
// 기본 요청 http://localhost:8000/users/1
Java 컨텍스트에서 코드 자동 완성 ⌃CtrlSpace을 사용하여
@Path
주석을 기반으로 URI를 지정할 수 있다. Java 코드에서@Path
주석이 변경되면 제안 목록의 내용도 반영된다.
여러 요청을 단일 파일로 구성하기
요청 끝에
###
구분자를 입력하여 요청의 끝을 표시한다.// 기본 요청 http://localhost:8000/users/1 ###
구분자 아래에 또 다른 요청을 작성한다.
// 기본 요청 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
).