荔枝fm怎么创建电台

荔枝fm怎么创建电台?你想拥有自己的电台吗?你想做主持人吗?你想将自己录制好的视频分享给好友吗?那么到底荔枝fm怎么创建电台呢?下面,小编来教教大家怎么创建属于自己的电台。

荔枝fm怎么创建电台?

1)首先在手机桌面打开【荔枝FM】,打开以后点击【我的】。(如下图所示)

荔枝fm怎么创建电台荔枝fm怎么创建电台

2)然后大家点击【申请电台】,点击以后把相片、电台名称、电台介绍。输入进去。(如下图所示)

荔枝fm怎么创建电台荔枝fm怎么创建电台

3)上面输入完以后大家往下拉,把自己的电台标签选上。接着大家点击屏幕右上【√】。(如下图所示)

荔枝fm怎么创建电台荔枝fm怎么创建电台

4)申请以后他内部需要审核,审核成功以后点击自己的电台进去。然后选择【录制节目】。(如下图所示)

荔枝fm怎么创建电台荔枝fm怎么创建电台

5)可添加音乐还可加双音乐,(这里小编就不介绍了),大家准备好以后点击屏幕左下方麦图标!(如下图所示)

荔枝fm怎么创建电台荔枝fm怎么创建电台

6)录制足够了的时候还是点击屏幕左下方麦图标,接下来点击右边【√】。(如下图所示)

荔枝fm怎么创建电台荔枝fm怎么创建电台

7)最后大家点击【录制完成】即可完成。(如下图所示)

荔枝fm怎么创建电台

HttpClient 4.5.x 工具类设计与实现

最近,业务需要在java服务端发起http请求,需要实现”GET”,”POST”,”PUT”等基本方法。于是想以 “HttpClient” 为基础,封装基本实现方法。在github上面看到一个项目cn-umbrella/httpclientDemo,里面实现简单的 “GET”,”POST”。一方面,demo中实现的逻辑不能满足业务需要,同时实现过程中,存在使用过期的类,代码封装不足等问题。也是我就重新封装了httpclient-util,抱着大家相互学习的心态,将代码上传到github上面,相关链接,错误的地方欢迎大家指正。

回归正题,下面讲讲工具类实现的基本思路。

1.主要依赖

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.2</version>
</dependency>

<!--httpmime主要用于构建multi-part/form-data 请求-->
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpmime</artifactId>
    <version>4.5.2</version>
</dependency>

2.HttpClientUtil 主要方法

/**
 * Do http request
 * @param request request object
 * @return response object
 */
public static Response doRequest(Request request)

其中,Request 封装了请求参数,Response 封装了返回内容。

3.Request 说明

支持方法:”GET”,”OPTIONS”,”HEAD”,”POST”,”PUT”,”PATCH”。支持请求体: “application/x-www-form-urlencoded”,”json字符串”,”multipart/form-data”。

Request的继承关系

Request (没有请求body的请求,支持方法:"GET", "OPTIONS", "HEAD")
      |---BaseEntityRequest (抽象类,定义有请求body的请求, 支持方法:"POST", "PUT", "PATCH")
                      |--- UrlEncodedFormRequest (application/x-www-form-urlencoded)
                      |--- JsonRequest (请求body为json字符串)
                      |--- MultiPartFormRequest (multipart/form-data)

同时,Request 支持使用 ssl/tls,使用request.setUseSSL(true);设置即可。

HttpEntity就是对应请求body相关实体对象。

3.BaseEntityRequest 介绍

任何实现具有请求body的请求,需要实现 BaseEntityRequest 以下方法

/**
 * Get HttpEntity about request body
 * @return HttpEntity
 */
public abstract HttpEntity getEntity();

3.1 UrlEncodedFormRequest 核心代码

这个实现比较简单,”K-V” 的形式,返回 UrlEncodedFormEntity,注意参数编码。

@Override
public HttpEntity getEntity() {
    List<NameValuePair> pairList = new ArrayList<>(params.size());
    for (Map.Entry<String, Object> entry : params.entrySet()) {
        NameValuePair pair = new BasicNameValuePair(entry.getKey(), entry
                .getValue().toString());
        pairList.add(pair);
    }

    return new UrlEncodedFormEntity(pairList, Charset.forName(getRequestCharset())); //参数编码
}

3.2 JsonRequest 核心代码

请求body就是一个 “json字符串”,返回一个StringEntity 实体即可。

@Override
public HttpEntity getEntity() {
    StringEntity stringEntity = new StringEntity(jsonObject.toString(), getRequestCharset()); //解决中文乱码问题,需要注意编码,如使用"utf-8"
    stringEntity.setContentEncoding(getResponseDefaultCharset());
    stringEntity.setContentType(JSON_CONTENT_TYPE);
    return stringEntity;
}

3.3 MultiPartFormRequest 核心代码

httpclient 类库中不直接支持构造 “multi-part/form-data” ,需要引入 httpmime,并使用 MultipartEntityBuilder 构造请求body。如果是文件类型的参数对象,使用 FileBody 构建 part,否则,使用 StringBody,注意编码。

@Override
public HttpEntity getEntity()  {
    try {
        Charset charset = CharsetUtils.get(getRequestCharset());
        //使用浏览器兼容模式,并且设置编码,防止文件名乱码问题
        MultipartEntityBuilder builder = MultipartEntityBuilder.create()
                .setMode(HttpMultipartMode.BROWSER_COMPATIBLE)
                .setCharset(charset); //编码
        parts.forEach((key, value) -> {
            if (null != value && value instanceof File) { //for file
                FileBody fileBody = new FileBody((File) value);
                builder.addPart(key, fileBody);
            } else {
                StringBody stringBody = new StringBody(null == value ? "" : value.toString()
                        , ContentType.create(ContentType.TEXT_PLAIN.getMimeType(), charset)); //编码
                builder.addPart(key, stringBody);
            }
        });
        return builder.build();
    } catch (UnsupportedEncodingException e) {
        throw new RuntimeException("Charset '" + getRequestCharset() + "' is unsupported!");
    }
}

4.注意地方

使用 https 过程中,如果出现下述异常:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949)
    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302)
    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296)
...
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387)
    at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
    at sun.security.validator.Validator.validate(Validator.java:260)
    at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)

可以参考我的上篇博文解决 java 使用ssl过程中出现”PKIX path building failed:…,当然在包 com.xiaobenma020.http.cert 下面可以找到类 InstallCert

关键步骤

% java InstallCert _web_site_hostname_

显示相关的证书信息

此时输入'q' 则为'退出', '1' 则将添加CA证书。

将新生成的 "jssecacerts" 移到"$JAVA_HOME/jre/lib/security"

5.使用demo

@Test
public void doResponse() throws Exception {
    UrlEncodedFormRequest request = new UrlEncodedFormRequest("https://xxx.com/login", RequestMethod.POST);

    //url form param
    request.addParam("loginId", "loginId");
    request.addParam("password", "password");

    //query string param
    request.addUrlParam("version", "v1");

    //ssl
    request.setUseSSL(true);

    Response response = HttpClientUtil.doRequest(request);
    System.out.println(response.getResponseText()); //response text
    System.out.println(response.getCode()); //response code
    System.out.println(response.getHeader("Set-Cookie"));
}



熊猫tv猫币有什么用 熊猫tv猫币多少钱

熊猫tv猫币多少钱一个?熊猫tv猫币有什么用,熊猫tv猫币怎么用呢?这个所谓的熊猫TV的猫币,是王思聪旗下的娱乐直播平台“熊猫TV”的虚拟货币,目前熊猫TV的猫币对人名币的比利时10:1,而熊猫TV的竹子对人名币的比利时100:1。熊猫TV的猫币在充值获得之后可以顺带获得等值的竹子,但是这些竹子只能在猫币消费之后才能赠送。

熊猫tv猫币多少钱?

上面已经告诉了大家,目前熊猫TV的猫币对人名币的比利时10:1,而熊猫TV的竹子对人名币的比利时100:1。熊猫TV的猫币在充值获得之后可以顺带获得等值的竹子。

熊猫tv猫币有什么用 熊猫tv猫币多少钱

熊猫tv猫币有什么用?

目前熊猫tv猫币可以购买熊猫tv的三种虚拟物品分别是“龙虾”、“烤鱼”、“饭团”。龙虾最贵100快一份,烤鱼次之,五块钱一份。饭团最便宜,才两毛钱一份。消费等额的猫币,则赠送等额的竹子。

熊猫tv猫币怎么用呢?网友们随便打开一个直播页面,如果直播已经开通了赠送充值物品的功能,那么在直播窗口的右下角就会有如下所示的四个图标,部分主播没有开启这个功能,例如著名LPL主播“米勒”,小编找素材的时候没有看到他的赠送功能哦!

熊猫tv猫币有什么用 熊猫tv猫币多少钱

最后一个竹子咱就不多说了,第三个“饭团最便宜”,2猫币一个,也就是两毛钱一个,最小充值10块钱,可以兑换20个“饭团”,并且熊猫TV赠送“20个”竹子,这么说的话,其实就是2毛钱20个竹子,一分钱一个竹子。

熊猫tv猫币有什么用 熊猫tv猫币多少钱

第二个“烤鱼”50猫币一份,这个可比饭团贵了25倍,5块钱一份。充一次值至少可以买两份,顺带赠送500竹子。PC6苹果网小编寻思熊猫吃鱼吗?

熊猫tv猫币有什么用 熊猫tv猫币多少钱

第一个,熊猫TV最贵的虚拟道具“龙虾”,一份1000猫币,也就是100人名币,同时还赠送10000竹子给用户。说实话这份龙虾有点贵,咱潘棵浅鋈コ砸瓜点一斤龙虾也才五十多呢~~

熊猫tv猫币有什么用 熊猫tv猫币多少钱