【发布时间】:2017-12-31 15:32:58
【问题描述】:
我正在尝试调用 IBM Watson 的 API,以使用 WWW 库从我的 Unity 项目中执行情绪分析。这是我当前的代码:
string uri = "https://gateway.watsonplatform.net/natural-language-understanding/api/v1/analyze?version=2017-02-27";
WWWForm form = new WWWForm();
form.AddField ("text", "That%20was%20simply%20magnificent!");
form.AddField ("features", "sentiment");
form.AddField ("Content-Type", "application/json");
var headers = form.headers;
byte[] rawData = form.data;
headers["Authorization"] = "Basic " + System.Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(USERNAME + ":" + PASSWORD));
WWW www = new WWW(uri, rawData, headers);
yield return www;
USERNAME 和 PASSWORD 是我的 API 凭据。但是,此代码不断给我一个 415 错误。另外,如果我将授权更改为身份验证,错误将更改为 401。
我尝试使用 hurl.it 发出相同的请求(有效),我已经打印出授权标头并将其与 hurl.it 在给定用户名和密码的情况下构造的内容进行比较,它们是相同的字符串 - 但项目中的请求失败。我错过了什么?
【问题讨论】:
-
仅供参考,自然语言理解在 Watson Unity SDK 中被抽象出来:github.com/watson-developer-cloud/unity-sdk/blob/develop/…
-
UnityWebRequest 系统适合你吗?
-
@jdnicholsc 我最终使用了 SDK,它有效。
-
@Technicolor 优秀的伙伴,如果你想尝试github.com/proyecto26/RestClient,这是另一个不错的选择
标签: c# rest http unity3d ibm-cloud