Golang을 사용하여 웹 애플리케이션을 작성할 때 사용자가 브라우저에 입력한 요청 주소(URL)를 얻어야 하는 경우가 있습니다. 이 프로세스는 매우 간단합니다. Go에 내장된 net/http 패키지를 사용하여 완료하면 됩니다.
먼저 HTTP 핸들러를 생성해야 합니다. 기존 HTTP 핸들러를 기반으로 확장하거나 처음부터 작성할 수 있습니다. 다음은 "Hello, World!" 메시지를 반환하는 간단한 HTTP 핸들러의 예입니다.
package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, World!") }) http.ListenAndServe(":8080", nil) }
코드의 http.HandleFunc
함수는 요청을 핸들러 함수에 매핑하는 라우터를 구현합니다. http.ListenAndServe
함수는 포트 8080에서 HTTP 서버를 시작합니다. http.HandleFunc
函数实现了一个路由器,该路由器将请求映射到处理程序函数,而http.ListenAndServe
函数在8080端口上启动了HTTP服务器。
接下来,我们需要从http.Request
请求对象中获取请求URL。在处理程序函数中,可以通过r.URL
来获取。注意,URL
是一个结构体,我们需要使用它的String()
方法将其转换为字符串形式。以下是获取请求URL的代码:
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Your request URL path is: %s", r.URL.String()) })
上面的代码将请求URL的路径部分(即“/”后面的部分)打印到HTTP响应中。
如果我们需要获取完整的请求URL(包括查询字符串等),那么我们可以使用r.URL.RequestURI()
方法:
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Your request URL is: %s", r.URL.RequestURI()) })
以上代码会将完整的请求URL打印到HTTP响应中。
除了获取请求URL之外,http.Request
对象还提供了许多其他信息,如请求方法、请求头、请求主体等。通过它们,我们可以编写更加灵活和功能丰富的HTTP处理程序。
总结:
在Golang中获取请求地址非常简单,只需要使用http.Request
对象中的URL
或RequestURI
http.Request
요청 객체에서 요청 URL을 가져와야 합니다. 핸들러 함수에서는 r.URL
을 통해 얻을 수 있습니다. URL
은 구조이므로 String()
메서드를 사용하여 이를 문자열 형식으로 변환해야 합니다. 요청 URL을 가져오는 코드는 다음과 같습니다. 🎜rrreee🎜위 코드는 요청 URL의 경로 부분(예: "/" 다음 부분)을 HTTP 응답에 인쇄합니다. 🎜🎜전체 요청 URL(쿼리 문자열 등 포함)을 가져와야 하는 경우 r.URL.RequestURI()
메서드를 사용할 수 있습니다. 🎜rrreee🎜위 코드는 전체 요청 URL을 HTTP 응답에 추가합니다. 🎜🎜요청 URL을 가져오는 것 외에도 http.Request
개체는 요청 방법, 요청 헤더, 요청 본문 등과 같은 기타 많은 정보도 제공합니다. 이를 통해 우리는 보다 유연하고 기능이 풍부한 HTTP 핸들러를 작성할 수 있습니다. 🎜🎜요약: 🎜🎜Golang에서 요청 주소를 가져오는 것은 매우 간단합니다. http.Request
개체에서 URL
또는 RequestURI
메서드를 사용하면 됩니다. . 할 수 있다. 개발자로서 우리는 웹 애플리케이션을 보다 세밀하게 제어하기 위해 이러한 기본 HTTP 정보에 익숙해야 합니다. 🎜위 내용은 golang은 요청 주소를 얻습니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!