问题描述
我正在尝试从网站访问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);
}
}
}
}
解决方法
:
前面的部分是标题名称,第二部分是值。
您想将标头Authorization
设置为值Token + SOMEKEY
,因此它应该是
request.SetRequestHeader("Authorization",$"Token {API_KEY}");