com.bokecc.sdk.mobile.util

## 类 HttpUtil

- java.lang.Object
- - com.bokecc.sdk.mobile.util.HttpUtil

-     public final class HttpUtil
      extends java.lang.Object

  处理HTTP请求工具类

- - ### 嵌套类概要

    嵌套类
    限定符和类型 | 类和说明
    --- | ---
    `static class` | `HttpUtil.HttpLogLevel` HTTP日志记录级别
    `static class` | `HttpUtil.HttpMethod` HTTP通信类型（GET，POST）

  - ### 字段概要

    字段
    限定符和类型 | 字段和说明
    --- | ---
    `static java.lang.String` | `BUSINESS`
    `static HttpUtil.HttpLogLevel` | `LOG_LEVEL` 设置HTTP日志记录级别
    `static java.lang.String` | `SDK_VERSION` TODO 需更新
    `static java.lang.String` | `TAG`

  - ### 构造器概要

    构造器
    构造器和说明
    `HttpUtil()`

  - ### 方法概要

    所有方法 静态方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `static java.util.Map<java.lang.String,java.lang.String>` | `buildPlayParams(java.lang.String videoId, java.lang.String userId, java.lang.String verificationCode, android.content.Context context)`
    `static java.lang.String` | `createHashedQueryString(java.util.Map<java.lang.String,java.lang.String> queryMap, long time, java.lang.String salt)` 功能：将一个Map按照Key字母升序构成一个QueryString.
    `static java.lang.String` | `createQueryString(java.util.Map<java.lang.String,java.lang.String> queryMap)` 功能：用一个Map生成一个QueryString，参数的顺序不可预知。
    `static java.lang.String` | `createQueryString(java.util.Map<java.lang.String,java.lang.String> queryMap, boolean isValueCouldNull)` 功能：用一个Map生成一个QueryString，参数的顺序不可预知。
    `static java.lang.String` | `getDetailMessage(java.lang.Exception e)` 获取异常的stacktrace
    `static java.lang.String` | `getHttpsUrl(java.lang.String url)` 获取https的地址
    `static java.lang.String` | `getHttpUrl(java.lang.String url)` 获取http的地址
    `static java.lang.String` | `getResult(java.lang.String uri, java.util.Map<java.lang.String,java.lang.String> params, java.lang.String apiKey, boolean isHttps)` 获取THQS加密后的请求结果
    `static java.lang.String` | `getResult(java.lang.String uri, java.util.Map<java.lang.String,java.lang.String> params, java.lang.String apiKey, long time)` 获取THQS加密后的请求结果
    `static java.lang.String` | `getSerialNumber()` 获取设备唯一标识符
    `static long` | `getServerTime(boolean isHttps)` 获取服务端时间
    `static java.lang.String` | `getUrl(java.lang.String url, boolean isHttps)` 获取播放地址
    `static java.lang.String` | `getUserAgent()` 获取手机的user-agent
    `static void` | `initIsMobile(android.content.Context context)`
    `static java.lang.String` | `retrieve(java.lang.String url, int timeOut, java.util.Map<java.lang.String,java.lang.String> params, HttpUtil.HttpMethod httpMethod)` 获取HTTP请求结果
    `static java.lang.String` | `retrieve(java.lang.String urlStr, int timeOut, java.util.Map<java.lang.String,java.lang.String> params, HttpUtil.HttpMethod httpMethod, boolean isLog)`
    `static void` | `sendAnalyse(java.lang.String url)`
    `static java.lang.String` | `urlDecode(java.lang.String s)` 返回指定字符串的UTF－8解码
    `static java.lang.String` | `urlEncode(java.lang.String s)` 返回指定字符串的UTF－8转码

    - ### 从类继承的方法 java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 字段详细资料

    - #### SDK_VERSION

          public static java.lang.String SDK_VERSION

      TODO 需更新

    - #### BUSINESS

          public static java.lang.String BUSINESS

    - #### TAG

          public static final java.lang.String TAG

      另请参阅:
        常量字段值

    - #### LOG_LEVEL

          public static HttpUtil.HttpLogLevel LOG_LEVEL

      设置HTTP日志记录级别

  - ### 构造器详细资料

    - #### HttpUtil

          public HttpUtil()

  - ### 方法详细资料

    - #### createHashedQueryString

          public static java.lang.String createHashedQueryString(java.util.Map<java.lang.String,java.lang.String> queryMap,
                                                                 long time,
                                                                 java.lang.String salt)

      功能：将一个Map按照Key字母升序构成一个QueryString. 并且加入时间混淆的hash串。
      参数:
        `queryMap` - query内容
        `time` - 加密时候，为当前时间；解密时，为从querystring得到的时间；
        `salt` - 加密salt
      返回:
        QueryString

    - #### getDetailMessage

          public static java.lang.String getDetailMessage(java.lang.Exception e)

      获取异常的stacktrace
      参数:
        `e` - Exception
      返回:
        stacktrace

    - #### createQueryString

          public static java.lang.String createQueryString(java.util.Map<java.lang.String,java.lang.String> queryMap)

      功能：用一个Map生成一个QueryString，参数的顺序不可预知。

    - #### createQueryString

          public static java.lang.String createQueryString(java.util.Map<java.lang.String,java.lang.String> queryMap,
                                                           boolean isValueCouldNull)

      功能：用一个Map生成一个QueryString，参数的顺序不可预知。
      参数:
        `queryMap` - queryMap
        `isValueCouldNull` - 是否允许value为空
      返回:
        QueryString

    - #### getServerTime

          public static long getServerTime(boolean isHttps)

      获取服务端时间
      返回:
        long time

    - #### retrieve

          public static java.lang.String retrieve(java.lang.String url,
                                                  int timeOut,
                                                  java.util.Map<java.lang.String,java.lang.String> params,
                                                  HttpUtil.HttpMethod httpMethod)

      获取HTTP请求结果
      参数:
        `url` - 请求地址
        `timeOut` - 超时时间
        `params` - 请求参数
        `httpMethod` - 请求类型GET、POST
      返回:
        返回HTTP请求结果

    - #### retrieve

          public static java.lang.String retrieve(java.lang.String urlStr,
                                                  int timeOut,
                                                  java.util.Map<java.lang.String,java.lang.String> params,
                                                  HttpUtil.HttpMethod httpMethod,
                                                  boolean isLog)

    - #### getResult

          public static java.lang.String getResult(java.lang.String uri,
                                                   java.util.Map<java.lang.String,java.lang.String> params,
                                                   java.lang.String apiKey,
                                                   boolean isHttps)
                                            throws org.json.JSONException

      获取THQS加密后的请求结果
      参数:
        `uri` - uri
        `params` - params
        `apiKey` - apiKey
        `isHttps` - isHttps
      返回:
        HTTP请求结果
      抛出:
        `org.json.JSONException` - exception

    - #### getResult

          public static java.lang.String getResult(java.lang.String uri,
                                                   java.util.Map<java.lang.String,java.lang.String> params,
                                                   java.lang.String apiKey,
                                                   long time)
                                            throws org.json.JSONException

      获取THQS加密后的请求结果
      参数:
        `uri` - uri
        `params` - params
        `apiKey` - apiKey
        `time` - time
      返回:
        HTTP请求结果
      抛出:
        `org.json.JSONException` - exception

    - #### urlEncode

          public static java.lang.String urlEncode(java.lang.String s)

      返回指定字符串的UTF－8转码
      参数:
        `s` - 需要转码的字符串
      返回:
        转码后的字符串

    - #### urlDecode

          public static java.lang.String urlDecode(java.lang.String s)

      返回指定字符串的UTF－8解码
      参数:
        `s` - 需要解码的字符串
      返回:
        解码后的字符串

    - #### getUserAgent

          public static java.lang.String getUserAgent()

      获取手机的user-agent

    - #### initIsMobile

          public static void initIsMobile(android.content.Context context)

    - #### sendAnalyse

          public static void sendAnalyse(java.lang.String url)

    - #### getUrl

          public static java.lang.String getUrl(java.lang.String url,
                                                boolean isHttps)

      获取播放地址
      参数:
        `url` - url
        `isHttps` - isHttps

    - #### getHttpsUrl

          public static java.lang.String getHttpsUrl(java.lang.String url)

      获取https的地址
      参数:
        `url` - url
      返回:
        HttpsUrl

    - #### getHttpUrl

          public static java.lang.String getHttpUrl(java.lang.String url)

      获取http的地址
      参数:
        `url` - url
      返回:
        HttpUrl

    - #### buildPlayParams

          public static java.util.Map<java.lang.String,java.lang.String> buildPlayParams(java.lang.String videoId,
                                                                                         java.lang.String userId,
                                                                                         java.lang.String verificationCode,
                                                                                         android.content.Context context)

    - #### getSerialNumber

          public static java.lang.String getSerialNumber()

      获取设备唯一标识符