Watson自然语言理解Java 401未经授权
我正在尝试将Java应用程序连接到Watson NLU服务。首先,我试着从开始学习教程。我在Bluemix上创建了一个服务,并导入了watson Java SDK。使用本教程代码,我不断收到401个未经授权的回复。(当然,我更改了服务的用户名和密码) 我想少了些什么,但我不知道是什么Watson自然语言理解Java 401未经授权,java,watson,Java,Watson,我正在尝试将Java应用程序连接到Watson NLU服务。首先,我试着从开始学习教程。我在Bluemix上创建了一个服务,并导入了watson Java SDK。使用本教程代码,我不断收到401个未经授权的回复。(当然,我更改了服务的用户名和密码) 我想少了些什么,但我不知道是什么 NaturalLanguageUnderstanding service = new NaturalLanguageUnderstanding( NaturalLanguageUnderstanding.VER
NaturalLanguageUnderstanding service = new NaturalLanguageUnderstanding(
NaturalLanguageUnderstanding.VERSION_DATE_2017_02_27,
"{username}",
"{password}"
);
String text = "IBM is an American multinational technology " +
"company headquartered in Armonk, New York, " +
"United States, with operations in over 170 countries.";
EntitiesOptions entitiesOptions = new EntitiesOptions.Builder()
.emotion(true)
.sentiment(true)
.limit(2)
.build();
KeywordsOptions keywordsOptions = new KeywordsOptions.Builder()
.emotion(true)
.sentiment(true)
.limit(2)
.build();
Features features = new Features.Builder()
.entities(entitiesOptions)
.keywords(keywordsOptions)
.build();
AnalyzeOptions parameters = new AnalyzeOptions.Builder()
.text(text)
.features(features)
.build();
AnalysisResults response = service
.analyze(parameters)
.execute();
System.out.println(response);
401未经授权将表明您用于访问服务的凭据存在问题。要排除这种情况,请从同一页的cURL教程开始:
curl -X POST \
-H "Content-Type: application/json" \
-u "{username}":"{password}" \
-d @parameters.json "https://gateway.watsonplatform.net/natural-language-understanding/api/v1/analyze?version=2017-02-27"
如果使用相同的用户名和密码,您仍然收到401未经授权的错误,则该用户名/密码组合可能存在问题。删除Bluemix中的互动程序并创建一个新的互动程序以获取新的用户名/密码,然后尝试一下
如果这样做很好,那么在如何将用户名/密码插入代码中就存在问题。验证您是否已替换了
{username}
和{password}
,最终版本中不应包含任何花括号。我在node.js中遇到了相同的问题,并通过将api网关的正确url添加到自然语言理解服务=新的自然语言理解()
对象中解决了该问题。
请记住,这取决于您所在的地区
问候
利奥大家好,谢谢你们的回复。真奇怪。我重新创建了Watson实例,它与新生成的凭据一起工作得非常好。