我很。我正在为Android设备制作一个2D游戏,我很难理解所有WWW和http Forms事物。
我基本上需要做的是将请求发布到https url并使用凭据(用户名和密码)获取访问令牌,我必须使用JSON对象。
我需要更详细的方式:
1.向服务器创建2个请求以获取其他资产:为了接收访问令牌,我需要创建一个HTTP POST请求到包含JSON对象的特定URL,其中包含两个元素 - “username”和“password”。
2.向特定url'auth'标头创建HTTP GET请求,并使用在第一个请求中获取的访问令牌。响应包含一个JSON对象,其中包含5个附加艺术资产的URL。
3.然后我需要在游戏中随机放置包含图像的5个网址。
我知道如何在游戏中添加预制件,我找不到一个可以理解的指南来通过这个过程。我从资产商店下载了JSON对象
无需编写代码,即使理解也更清楚,我只需要了解如何获得结果的指南。
非常感谢我感谢每一次帮助!
答案 0 :(得分:0)
(更新版本): 我会按照@LabGecko的建议更新我的答案。
要将Web请求发送到服务器,您应该使用UnityWebRequest。这是我发送Post请求的方法(传递一些接受字符串作为callback
的参数来处理结果的函数。)
//callback is used to handle server response
private IEnumerator SendPostRequest(string url, List<IMultipartFormSection> data,
Action<string> callback, string _token = null)
{
using (UnityWebRequest www = UnityWebRequest.Post(url, data))
{
//Set auth token if available
if (!string.IsNullOrEmpty(_token))
www.SetRequestHeader("authorization", string.Format("Bearer {0}", _token));
www.SendWebRequest();
while (!www.isDone)
{
yield return false;
}
if (!string.IsNullOrEmpty(www.error))
{
Debug.Log(www.error);
}
if (www.isDone)
{
callback(www.downloadHandler.text);
}
}
}
获取请求如下所示:
private IEnumerator SendGetRequest(string url, Action<string> callback, string _token = null)
{
using (UnityWebRequest www = UnityWebRequest.Get(url))
{
if (!string.IsNullOrEmpty(_token))
www.SetRequestHeader("authorization", string.Format("Bearer {0}", _token));
www.SendWebRequest();
while (!www.isDone)
{
yield return false;
}
if (!string.IsNullOrEmpty(www.error))
{
Debug.Log(www.error);
}
if (www.isDone)
{
callback(www.downloadHandler.text);
}
}
}
收到回复后,您可以使用JSONUtility来处理它的JSON部分。