PHP 편집기 Xigua는 go-curl과 유사한 기능을 달성하기 위해 net/http GET 요청에 대한 읽기 콜백을 설정하는 방법을 소개합니다. net/http 라이브러리를 사용하여 GET 요청을 시작할 때 http.Client 및 http.Request 구조의 관련 메서드를 사용하여 읽기 콜백 함수를 설정할 수 있습니다. io.Reader 인터페이스를 구현하는 사용자 정의 구조에 http.Response.Body 값을 설정하면 응답 내용을 읽는 동안 콜백 작업을 수행할 수 있습니다. 이러한 방식으로 우리는 HTTP 요청을 처리하는 과정에서 보다 유연하고 맞춤화된 작업을 달성하여 코드의 유지 관리성과 확장성을 향상시킬 수 있습니다.
Dahua 카메라에서 스냅샷/이미지를 얻을 수 있는 작동하는 golang 프로그램이 있습니다. 다음 URI - http://192.168.x.x/cgi-bin/eventManager.cgi?action=attach&codes=[VideoMotion]
에 대한 읽기 콜백 함수를 추가하여 이를 향상시키고 싶습니다. 이 URI는 카메라 측에서 소켓을 열어 두어 카메라가 이벤트를 계속 전송하도록 합니다.
읽기 콜백 등록을 지원하는 go-curl을 사용해보았습니다. 그러나 이 패키지는 MIPS 아키텍처를 지원하지 않습니다. 그러므로 우리는 그것을 사용할 수 없습니다. 어떤 조언이나 도움이라도 도움이 될 것입니다. 다음은 스냅샷 검색을 위한 작업 코드입니다.
package main import ( "fmt" "log" "net/http" "github.com/icholy/digest" ) const ( username = "xxxxx" password = "xxxxx" uri = "http://192.168.x.x/cgi-bin/snapshot.cgi" ) func main() { client := &http.Client{ Transport: &digest.Transport{ Username: username, Password: password, }, } resp, err := client.Get(uri) if err != nil { log.Fatal(err) } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { log.Fatalf("Error: Status code %d", resp.StatusCode) } else { fmt.Println("Snapshot fetched") } // Perform next steps }
client.Get(uri) 호출이 차단된 것은 저의 착각이었습니다. @kotix의 다음 댓글은 내 코드를 다시 생각하게 만들었습니다. client.Get(uri) 아래에 인쇄를 추가한 후 실행을 계속하려면 확인하세요.
이벤트가 도착했을 때 이를 인쇄하는 완전한 코드입니다.
으아아아위 내용은 go-curl을 사용하는 것처럼 net/http GET 요청에 대한 읽기 콜백을 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!