Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Unity:https使用JSONObj发布和获取请求_C#_Android_Json_Https_Unity3d - Fatal编程技术网

C# Unity:https使用JSONObj发布和获取请求

C# Unity:https使用JSONObj发布和获取请求,c#,android,json,https,unity3d,C#,Android,Json,Https,Unity3d,我是。我正在unity中为android设备制作一个2d游戏,我很难理解所有的WWW和http表单 我基本上需要做的是将请求发布到https url,并使用credentialsusername和password获取访问令牌,我必须使用JSON对象 我需要以更详细的方式: 1.create 2请求服务器获取额外资产:为了接收访问令牌,我需要创建一个HTTP POST请求到特定url,该url包含两个元素的JSON对象—“username”和“password” 2.创建对特定url“auth”头

我是。我正在unity中为android设备制作一个2d游戏,我很难理解所有的WWW和http表单

我基本上需要做的是将请求发布到https url,并使用credentialsusername和password获取访问令牌,我必须使用JSON对象

我需要以更详细的方式:

1.create 2请求服务器获取额外资产:为了接收访问令牌,我需要创建一个HTTP POST请求到特定url,该url包含两个元素的JSON对象—“username”和“password”

2.创建对特定url“auth”头的HTTP GET请求,并使用在第一个请求中获取的访问令牌。响应包含一个JSON对象,其中包含5个额外Art资产的URL

3.然后我需要在我的游戏中随机放置这5个包含图像的URL

我知道如何添加预制到游戏中,我只是找不到一个可以理解的指南来完成这个过程。我从资产存储中下载了JSON对象

不需要写一个代码,即使它会更清楚地理解,我只是需要如何得到结果的指南

非常感谢我的每一个帮助

已弃用:并且应该足以满足您的需要

更新版本: 我将按照@LabGecko的建议更新我的答案

要将web请求发送到服务器,您应该使用。这就是我发送Post请求并传递一些函数的方式,这些函数接受字符串作为回调的参数来处理结果

//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);
        }
    }
}
Get请求如下所示:

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);
        }
    }
}

收到响应后,您可以使用处理它的JSON部分。

此链接已断开,此答案的部分内容已弃用。有没有办法让这个问题不再出现在搜索结果中?在URL和JSON上搜索时,它仍然会列出较高的值。