我必须将带有图像的请求发送到带有标题“ Prediciton-Key”-> myKey的Microsoft Azure自定义视觉,并且主体应该是图像(二进制数据)。
首先,我尝试使用邮递员,并且工作正常,但是当我将其放在Unity上时,出现错误:401未经授权。
有人知道为什么吗? (我将api键作为字符串)
WWWForm form = new WWWForm();
form.headers.Add("Prediction-Key", "xxxxxxxxxxxxxxxxxxxxxxxx");
form.AddBinaryData("fileUpload", texture.EncodeToPNG());
UnityWebRequest req = UnityWebRequest.Post(link,form);
yield return req.SendWebRequest();
答案 0 :(得分:0)
在docu中,他们实际上没有显示任何使用True
的示例,但我想它的工作原理类似于Prediction-Key
的示例,例如:
Training-Key
curl -X POST "https://southcentralus.api.cognitive.microsoft.com/customvision/v2.0/Training/projects/{projectId}/tags?name=cat" -H "Training-Key: $TRAININGKEY" --data-ascii ""
之后的标头是添加到http请求本身的标头,而不是-H
中的标头字段。
我很确定您必须使用与添加授权标头(Source)相似的base64编码的字符串
form
,然后使用它req.SetRequestHeader
来授权http请求本身不作为以下形式的标头:
string Base64String(string key)
{
return System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(key));
}