如何从.net核心调用ibm watson api
Posted
技术标签:
【中文标题】如何从.net核心调用ibm watson api【英文标题】:how to call ibm watson api from .net core 【发布时间】:2017-08-18 07:50:57 【问题描述】:我正在尝试调用 watson 个性洞察 api,环顾四周后,似乎解决方案是使 .net 等效于以下 curl 请求。我对此很陌生,想知道是否可以获得指导或指向相关教程。
curl -X POST -u "username:password"
--header "Content-Type: application/json"
--data-binary @profile
"https://gateway.watsonplatform.net/personality-insights/api/v3/profile?version=2016-10-20&consumption_preferences=true&raw_scores=true"
【问题讨论】:
【参考方案1】:在这种情况下,您是否使用 curl 调用 API?根据你的例子...
通过提供您要使用的服务实例的服务凭据 中提供的username
和password
来调用 Personality Insights。 API 使用HTTP
基本身份验证。
用于身份验证:
curl -u "username":"password"
"https://gateway.watsonplatform.net/personality-insights/api/v3/method"
Bluemix 从所有请求中收集数据并使用这些数据来改进 Watson 服务。
请求记录:
curl -u "username":"password"
--header "X-Watson-Learning-Opt-Out: true"
"https://gateway.watsonplatform.net/personality-insights/api/v3/method"
调用和获取响应的方法:
curl -X POST -u "username:password"
--header "Content-Type: application/json"
--data-binary @profile.json
"https://gateway.watsonplatform.net/personality-insights/api/v3/profile?version=2016-10-20&consumption_preferences=true&raw_scores=true"
IBM Watson API 使用标准 HTTP 响应代码来指示方法是否成功完成。
200 级响应始终表示成功。
400 级响应表示某种故障。
500 级响应通常表示内部系统错误。
查看来自 IBM 的 documentation 进行开发,有所有示例如何调用以及是否有错误原因。和this 用于验证如何工作以及如何使用。
Demo here,如果你愿意,你可以从 github 上 fork。
【讨论】:
【参考方案2】:您可以使用Watson Developer Cloud .NET Standard SDK。使用
通过 NuGet 安装 Personality Insights 服务Install-Package IBM.WatsonDeveloperCloud.PersonalityInsights -Pre
实例化服务
// create a Personality Insights Service instance
PersonalityInsightsService _personalityInsights = new PersonalityInsightsService();
// set the credentials
_personalityInsights.SetCredential("<username>", "<password>");
调用服务
var results = _personalityInsights.GetProfile(ProfileOptions.CreateOptions()
.WithTextPlain()
.AsEnglish()
.AcceptJson()
.AcceptEnglishLanguage()
.WithBody("some text"));
在未来版本中,您将能够使用命名参数而不是构建选项来调用服务。
var results = _personalityInsights.GetProfile(
"<input>",
"<content-type>",
"<content-language>",
"<accept>",
"<accept-language>",
"<raw-scores>",
"<csv-headers>"
"<consumption-preferences>",
"<version>"
);
【讨论】:
以上是关于如何从.net核心调用ibm watson api的主要内容,如果未能解决你的问题,请参考以下文章
如何从 javascript 调用 IBM Watson 服务
使用 IAM API 密钥的 IBM Watson 语音转文本 WebSocket 授权
iOS/IBM Cloud/Swift:使用 AlamoFire 发布到 Watson API