【发布时间】:2021-01-13 19:40:24
【问题描述】:
我正在尝试从网站访问 JSON 数据,并且可以使用命令提示符轻松完成。我使用以下命令接收数据:
curl -H "Authorization: Token 1a2a3b4c5d" https://sampleweb.com/api/v1/sites/
但是我无法使用 Unity 访问它,我正在添加标头请求以及 API 密钥,但我收到授权错误。我在这里做错了什么?
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
public class GetAPI : MonoBehaviour
{
private const string URL = "https://sampleweb.com/api/v1/sites/";
private const string API_KEY = "1a2a3b4c5d";
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if(Input.GetKeyDown(KeyCode.A))
{
GenerateRequest();
}
}
public void GenerateRequest()
{
StartCoroutine(ProcessRequest(URL));
}
private IEnumerator ProcessRequest(string uri)
{
using (UnityWebRequest request = UnityWebRequest.Get(uri))
{
request.SetRequestHeader("Authorization: Token", API_KEY);
yield return request.SendWebRequest();
if (request.isNetworkError)
{
Debug.Log("Error: " + request.error);
}
else
{
Debug.Log("Received: " + request.downloadHandler.text);
}
}
}
}
【问题讨论】:
-
您是否尝试过“Token 1a2a3b4c5d”作为您在 curl 示例中显示的标题数据?
-
要说你没有发送令牌。所以它不会知道如何处理它
-
将
private const string API_KEY = "1a2a3b4c5d";更改为private const string API_KEY = "Token 1a2a3b4c5d"; -
@RetiredNinja 谢谢我现在明白了。我不得不省略
:然后它起作用了。