반응형
🚨 Srping 실행 후 URL 처리 시 발생한 에러 메시지
java.net.MalformedURLException: no protocol:
at java.base/java.net.URL.<init>(URL.java:674) ~[na:na]
at java.base/java.net.URL.<init>(URL.java:569) ~[na:na]
at java.base/java.net.URL.<init>(URL.java:516) ~[na:na]
❓에러 발생 이유
URL을 전송할 때 protocol이 빠져있거나, URL이 공백으로 전달되면 나타나는 에러 메시지입니다.
예를들어 URL을 https://httpbin.org/post 형식으로 전달해야 하지만
httpbin.org/post 또는 ""로 전달할 경우에 나타나는 에러 메시지입니다.
✅ 해결 방법
URL을 전송하는 부분에서 정상적인 URL을 전송합니다.
아래 이미지와 소스코드를 참고해 주세요.
비정상 URL 전송 응답 결과
🌟 정상 URL 전송 응답 결과
Spring 전체 소스 코드
package hello.test.controller;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.net.MalformedURLException;
import java.net.URL;
@RestController
@RequiredArgsConstructor
public class UrlExceptionController {
@GetMapping("/url")
public TestUrlResponse Url(@RequestBody TestUrlRequest request) {
try {
URL url = new URL(request.url);
} catch (MalformedURLException e) {
throw new RuntimeException(e);
}
return new TestUrlResponse(request);
}
@Data
static class TestUrlRequest {
private String url;
}
@Data
static class TestUrlResponse {
private String url;
public TestUrlResponse(TestUrlRequest request) {
this.url = request.getUrl();
}
}
}
반응형
댓글