【问题标题】:Unity 3d call post api with json request带有json请求的Unity 3d调用post api
【发布时间】:2018-01-10 05:43:34
【问题描述】:

我想用两个json参数用户名和密码在unity 3d中调用登录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 或请求。这将有助于确定哪里出了问题。
  • @RetiredNinja : 请检查我的代码,我正在使用此方法调用 API。您可以使用用户名“yogi”和密码“himanshu”。

标签: c# php unity3d


【解决方案1】:

您需要手动设置消息的内容头和正文,并将您的表单数据字符串转换为json字符串并将how参数发送到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 (request.error != null)
    {
        Debug.Log("Erro: " + www.error);
    }
    else
    {
        Debug.Log("All OK");
        Debug.Log("Status Code: " + request.responseCode);
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    • 2019-09-08
    • 2018-03-13
    • 1970-01-01
    相关资源
    最近更新 更多