加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

c# – 带有json请求的Unity 3d调用api

发布时间:2021-07-06 05:22:21 所属栏目:大数据 来源: https://www.jb51.cc
导读:我想在Unity 3d中使用两个json参数用户名和密码调用登录api. 我在stackoverflow上关注了很多帖子.但是我的请求参数不在服务器上.如果我从我的Android应用程序和邮递员和chorome中调用此api,它在那里工作正常. public IEnumerator CallLogin(string username,

我想在Unity 3d中使用两个json参数用户名和密码调用登录api.

我在stackoverflow上关注了很多帖子.但是我的请求参数不在服务器上.如果我从我的Android应用程序和邮递员和chorome中调用此api,它在那里工作正常.

public IEnumerator CallLogin(string username,string password)
    {
        WWWForm form = new WWWForm();
        form.AddField("username", username);
        form.AddField("password", password);

        UnityWebRequest www = UnityWebRequest.Post("/apis/login", form);
        yield return www.Send();

        if (www.error != null)
        {
            Debug.Log("Erro: " + www.error);
        }
        else
        {
            Debug.Log("All OK");
            Debug.Log("Text: " + www.downloadHandler.text);
        }
    }

所以我的问题是如何在统一3d中使用json请求调用post api.

请帮忙.

解决方法:

您需要手动设置内容标题和消息正文,并将表单数据字符串转换为json字符串,并将参数发送到CallLogin:

public IEnumerator CallLogin(string url, string logindataJsonString)
{
    var request = new UnityWebRequest (url, "POST");
    byte[] bodyRaw = Encoding.UTF8.GetBytes(logindataJsonString);
    request.uploadHandler = (UploadHandler) new UploadHandlerRaw(bodyRaw);
    request.downloadHandler = (DownloadHandler) new DownloadHandlerBuffer();
    request.SetRequestHeader("Content-Type", "application/json");
    yield return request.SendWebRequest();

    if (www.error != null)
    {
        Debug.Log("Erro: " + www.error);
    }
    else
    {
        Debug.Log("All OK");
        Debug.Log("Status Code: " + request.responseCode);
    }

}

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读