1

当发出如下的 post cURL 请求以尝试继续创建的对话时,Watson 会返回一个新对话。

curl -u "USERNAME":"PASSWORD" -X POST  --form conversation_id=CONVOID  --form client_id=CLIENTID  --form input="What type of toppings do you have?"  "https://gateway.watsonplatform.net/dialog/api/v1/dialogs/DIALOGID/conversation"

如果我使用下面的 cURL 它工作正常。

curl -u "USERNAME":"PASSWORD" --data "conversation_id=CONVOID&client_id=CLIENTID&input=What type of toppings do you have?" https://gateway.watsonplatform.net/dialog/api/v1/dialogs/DIALOGID/conversation

我的问题是,现在在尝试编写 ac# 包装器时,我遇到了同样的问题,即 POST 请求无法正确传输其表单数据。

这是怎么回事 ?

我要么需要 ac# MVC 等效于 " --data" 格式。(目前正在使用HttpClient.PostAsync)或找出使用发布请求继续对话到底有什么问题。

据我所知,我正在正确地复制 c# 中的发布请求,所以我认为没有两个问题。(只有一个发布请求问题,而不是 cURL 问题,然后是 C# 实现问题。)

对于它的价值,我以我提交的格式保留了命令,只用 BLOCKCAPITALS 替换敏感值。如果看起来我错过了引号或大括号,那是因为我有并且可能是问题的原因。

4

1 回答 1

1

该服务需要一个application/x-www-form-urlencodedPOST 请求

为此,curl您需要使用以下-d参数:

curl -u "USERNAME":"PASSWORD" -X POST 
  -d conversation_id=CONVOID 
  -d client_id=CLIENTID
  -d input="What type of toppings do you have?"
  "https://gateway.watsonplatform.net/dialog/api/v1/dialogs/DIALOGID/conversation"

-d,--数据

(HTTP) 将 POST 请求中的指定数据发送到 HTTP 服务器,就像浏览器在用户填写 HTML 表单并按下提交按钮时所做的那样。这将导致 curl 使用内容类型 application/x-www-form-urlencoded 将数据传递给服务器。与 -F、--form 进行比较。

卷曲文档

于 2016-02-28T17:55:00.433 回答