Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Watson自然语言理解Java 401未经授权_Java_Watson - Fatal编程技术网

Watson自然语言理解Java 401未经授权

Watson自然语言理解Java 401未经授权,java,watson,Java,Watson,我正在尝试将Java应用程序连接到Watson NLU服务。首先,我试着从开始学习教程。我在Bluemix上创建了一个服务,并导入了watson Java SDK。使用本教程代码,我不断收到401个未经授权的回复。(当然,我更改了服务的用户名和密码) 我想少了些什么,但我不知道是什么 NaturalLanguageUnderstanding service = new NaturalLanguageUnderstanding( NaturalLanguageUnderstanding.VER

我正在尝试将Java应用程序连接到Watson NLU服务。首先,我试着从开始学习教程。我在Bluemix上创建了一个服务,并导入了watson Java SDK。使用本教程代码,我不断收到401个未经授权的回复。(当然,我更改了服务的用户名和密码)

我想少了些什么,但我不知道是什么

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实例,它与新生成的凭据一起工作得非常好。