2014-01-29 11 views
-4

로컬 호스트를 검사하려고하면 올바른 상태가 반환되지만 네트워크에서 폴링을 시도 할 때 403 금지 된 오류가 표시됩니다. 실행중인 정확한 설정을 모른 채Golang 403 금지 된 오류

package main 

import "net/http" 
import "fmt" 

func main() { 
    resp, err := http.Get("http://site-centos-64:8080/examples/abc1.jsp") 
    fmt.Println(resp,err) 
} 
+0

* 서버 *는 403을 반환합니다. 이유를 찾으십시오. 이것은 본질적으로 go와는 아무런 관련이 없습니다 (cURL 또는 웹 브라우저는 무엇을 말합니까?). – user2864740

+0

@ user2864740- 웹 브라우저가 url과 curl에도 액세스 할 수 있습니다. – harry4

+1

사용하고있는'curl' 커맨드 (당신의 이력으로부터)를 게시하십시오. 일반적으로 인증이 실패하면 HTTP 403이 반환됩니다. – elithrar

답변

0

은, 난 단지 추측 할 수 있지만, 웹 서버가 요청 헤더 필터링 때이 일반적으로 발생합니다. 요청을 허용하려면 AcceptUser-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에 응답에서 변경된다.