我想在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);
}
}
原文地址:https://codeday.me/bug/20190929/1832698.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。