콘텐츠로 이동

HTTP

HTTP 방식

  • Server Information 애널리틱스 웹서버 주소는 다음과 같습니다.
    • 샌드박스: https://sandbox-analytics-log.withhive.com/v1/server-recv
    • 상용서버: https://analytics-log.withhive.com/v1/server-recv
  • Header Information
  • Method: POST
    • Content-Type: application/json; charset=utf8 (필수)
    • Content-Encoding: gzip (body에 압축 바이너리를 넣을 때 사용하는 옵션)
    # body에 압축 바이너리를 사용하는 예제
    {
            "appId" : "com.com2us.hivesdk.freefull.google.global.android.common",
            "logBody" : [
            {
                    "category" : "test",
                    "dateTime" : "2017-07-24 16:46:36",
                    "timezone" : "GMT+09:00",
                    "guid" : "xxxx"
            },
            {
                    "category" : "test2",
                    "dateTime" : "2017-07-24 16:46:36",
                    "timezone" : "GMT+09:00",
                    "guid" : "xxxx2"
            }
            ]
    }

 

  • Body Information

  • JSON 형식이며 아래 구조에 맞춰서 전송해야 합니다. 일부 필드는 지정된 키 값을 사용해야 입력됩니다.

  • 필수 파라미터 (로그에서 아래 필드 전송 필수)
appId String Hive에서 지정된 AppId
logBody Array 로그가 한 줄씩 들어가는 배열
logBody.category String 로그 정의에서 지정한 카테고리
logBody.dateTime String YYYY-MM-DD HH:mm:SS 형식으로 표시되는 로그 시간 한국 시간 기준(KST) 혹은 ISO-8601
logBody.guid String 로그의 키 값 랜덤 문자열 생성 추천

이 외의 값은 각 로그에 맞춰서 logBody의 각 행(row)에 넣습니다.

 

예시

호출

curl -d " { \"appId\" : \"com.com2us.hivesdk.freefull.google.global.android.common\", \"logBody\" : [ { \"category\" : \"hivesdk_levelup_log\", \"dateTime\" : \"2017-07-24 16:46:36\", \"timezone\" : \"GMT+09:00\", \"guid\" : \"xxxx\" } ] }"  -X POST https://sandbox-analytics-log.withhive.com/v1/server-recv

요청

> POST /v1/server-recv HTTP/1.1
> Host: sandbox-analytics-log.withhive.com
> User-Agent: curl/7.55.1
> Accept: */*
> Content-Length: 208
> Content-Type: application/x-www-form-urlencoded
>
{
                "appId" : "com.com2us.hivesdk.freefull.google.global.android.common",
                "logBody" : [
                {
                                "category" : "test",
                                "dateTime" : "2017-07-24 16:46:36",
                                "timezone" : "GMT+09:00",
                                "guid" : "xxxx"
                }
                ]
}

응답

< HTTP/1.1 200 OK
< Server: nginx
< Date: Tue, 12 Nov 2019 09:36:55 GMT
< Content-Type: text/html; charset=UTF-8
< Transfer-Encoding: chunked
< Connection: close
< {"success":true}
  • HTTP 응답 상태 코드가 200일 경우 로그 전송 성공, 아닐 경우 전송 실패입니다.
키 타입 값 설명
success boolean false HTTP 상태 코드가 200이 아닐 경우 false로 고정
message String 별도 표기 에러별 메시지 표기
requestBody String 요청값 전송된 로그 원본
  • Message 필드에 나타나는 에러 코드는 다음과 같습니다.
메시지 설명
no json body 파라미터 없음
json parse error JSON 형식 오류
json format error = required field {col} not found 필수 컬럼({col}) 이 없음
[logBody] json format error = required field {logBody.col} not found logBody내 필수 컬럼 ({logBody.col}) 없음
unknown category key : 지원되지 않는 category 사용