|
- package responses
-
- import (
- "io/ioutil"
- "net/http"
- )
-
- type AcsResponse interface {
- IsSuccess() bool
- GetHttpStatus() int
- GetHttpHeaders() map[string][]string
- GetHttpContentString() string
- GetHttpContentBytes() []byte
- GetOriginHttpResponse() *http.Response
- parseFromHttpResponse(httpResponse *http.Response) error
- }
-
- type BaseResponse struct {
- httpStatus int
- httpHeaders map[string][]string
- httpContentString string
- httpContentBytes []byte
- originHttpResponse *http.Response
- }
-
- func (baseResponse *BaseResponse) GetHttpStatus() int {
- return baseResponse.httpStatus
- }
-
- func (baseResponse *BaseResponse) GetHttpHeaders() map[string][]string {
- return baseResponse.httpHeaders
- }
-
- func (baseResponse *BaseResponse) GetHttpContentString() string {
- return baseResponse.httpContentString
- }
-
- func (baseResponse *BaseResponse) GetHttpContentBytes() []byte {
- return baseResponse.httpContentBytes
- }
-
- func (baseResponse *BaseResponse) GetOriginHttpResponse() *http.Response {
- return baseResponse.originHttpResponse
- }
-
- func (baseResponse *BaseResponse) IsSuccess() bool {
- if baseResponse.GetHttpStatus() >= 200 && baseResponse.GetHttpStatus() < 300 {
- return true
- }
- return false
- }
-
- func (baseResponse *BaseResponse) parseFromHttpResponse(httpResponse *http.Response) (err error) {
- defer httpResponse.Body.Close()
- body, err := ioutil.ReadAll(httpResponse.Body)
- if err != nil {
- return
- }
- baseResponse.httpStatus = httpResponse.StatusCode
- baseResponse.httpHeaders = httpResponse.Header
- baseResponse.httpContentBytes = body
- baseResponse.httpContentString = string(body)
- baseResponse.originHttpResponse = httpResponse
- return
- }
-
- type CommonResponse struct {
- *BaseResponse
- }
-
- func NewCommonResponse() (response *CommonResponse) {
- return &CommonResponse{
- BaseResponse: &BaseResponse{},
- }
- }
-
- func Unmarshal(response AcsResponse, httpResponse *http.Response, format string) {
-
- }
|