Unity 获取搜狗语音平台的令牌且对返回的字符串解析

获取到的字符串由UDP传输

搜狗语音平台嗷

using System;
using System.Collections;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using LitJson;
//using Google.Protobuf.WellKnownTypes;
using UnityEngine;
using UnityEngine.Networking;


public class MyPostAndGet : MonoBehaviour
{
    JsonData token01;
    
    //这俩自己在控制台获得
    string APPID;
    string APPKEY;

    private string token;
    public UdpClient _UdpClient;
    public UdpServer _UdpServer;
    private void Start()
    {
    
        Debug.Log("print");
        print("debug.log");
      StartPost();
    }

    /// <summary>
    /// 用来获得移动令牌的
    /// </summary>
    public void StartPost()
    {
        //开局先连接上
        byte[] m_token = CreateTokenClient.CreateToken(APPID, APPKEY,"3600s");
        StartCoroutine(POST("https://api.zhiyin.sogou.com/apis/auth/v1/create_token",m_token));
    }
    
    public IEnumerator POST(string url, byte[] postBytes)
    {
        UnityWebRequest request = new UnityWebRequest(url, "POST");//method传输方式,默认为Get;

        request.uploadHandler = new UploadHandlerRaw(postBytes);//实例化上传缓存器
        request.downloadHandler = new DownloadHandlerBuffer();//实例化下载存贮器
        request.SetRequestHeader("Content-Type", "application/json");//更改内容类型,
        yield return request.SendWebRequest();//发送请求

        Debug.Log("Status Code: " + request.responseCode);//获得返回值
        
        if (request.responseCode == 200)//检验是否成功
        {
            token = request.downloadHandler.text;//打印获得值
           
            
            JsonData herosJd = JsonMapper.ToObject(token);//最外层
            token01 = herosJd["token"];
            token01.ToString();

        }
        else
        {
            Debug.Log(request.responseCode);
        }
    }
    /// <summary>
    /// 用来发送语音的
    /// </summary>
    /// <param name="m_sample_rate_hertz"></param>
    /// <param name="m_language_code"></param>
    /// <param name="m_base64Str"></param>
    public void StartPost(int m_sample_rate_hertz,string m_language_code,string m_base64Str)
    {
        byte[] m_a = CreateTokenClient.CreateToken(m_sample_rate_hertz,m_language_code,m_base64Str);
        StartCoroutine(POST2("https://api.zhiyin.sogou.com/apis/asr/v1/recognize",m_a));
    }

    public IEnumerator POST2(string url, byte[] postBytes)
    {
        UnityWebRequest request = new UnityWebRequest(url, "POST");//method传输方式,默认为Get;

        request.uploadHandler = new UploadHandlerRaw(postBytes);//实例化上传缓存器
        request.downloadHandler = new DownloadHandlerBuffer();//实例化下载存贮器
        request.SetRequestHeader("Content-Type", "application/json");//更改内容类型,
        request.SetRequestHeader("Authorization", "Bearer "+token01);//token
        request.SetRequestHeader("Appid", APPID);//appid
        
        yield return request.SendWebRequest();//发送请求

        Debug.Log("Status Code: " + request.responseCode);//获得返回值
        
        if (request.responseCode == 200)//检验是否成功
        {
            token = request.downloadHandler.text;//打印获得值
            JsonData JsonObject = JsonMapper.ToObject(token);
            Debug.Log(JsonObject[0][0][0][0]["transcript"].ToString());
            
            if (_UdpServer.isServer)//如果是服务端连接客户端
            {
                _UdpServer._theGivenString = JsonObject[0][0][0][0]["transcript"].ToString();
                _UdpServer._isGiven = true;
            }
            else//如果是客户端连接服务端
            {
                _UdpClient._theGivenString = JsonObject[0][0][0][0]["transcript"].ToString();
                _UdpClient._isGiven = true;
            }
           
           
        }
        else
        {
            Debug.Log(request.responseCode);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值