은, 난 단지 추측 할 수 있지만, 웹 서버가 요청 헤더 필터링 때이 일반적으로 발생합니다. 요청을 허용하려면 Accept
및 User-Agent
헤더를 추가해야 할 수 있습니다. 이 작동하는 경우, 당신은 Header.Add() 방법을 사용하여 이동 코드에서 이러한 헤더를 설정할 수 있습니다
curl -i \
-H 'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \
-H 'User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11' \
http://site-centos-64:8080/examples/abc1.jsp
: 같은
보십시오 뭔가.
package main
import "net/http"
import "fmt"
func main() {
client := &http.Client{
CheckRedirect: redirectPolicyFunc,
}
req, err := http.NewRequest("GET", "http://site-centos-64:8080/examples/abc1.jsp", nil)
req.Header.Add("Accept", `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`)
req.Header.Add("User-Agent", `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11`)
resp, err := client.Do(req)
fmt.Println(resp,err)
}
위에 curl 명령
는
CURL HTTP/1.1 403 Forbidden Date에 응답에서 변경된다.
* 서버 *는 403을 반환합니다. 이유를 찾으십시오. 이것은 본질적으로 go와는 아무런 관련이 없습니다 (cURL 또는 웹 브라우저는 무엇을 말합니까?). – user2864740
@ user2864740- 웹 브라우저가 url과 curl에도 액세스 할 수 있습니다. – harry4
사용하고있는'curl' 커맨드 (당신의 이력으로부터)를 게시하십시오. 일반적으로 인증이 실패하면 HTTP 403이 반환됩니다. – elithrar