在发布如下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
我的问题是,现在当我尝试编写一个c#包装器时,我遇到的问题是POST请求无法正确传输其表单数据。
发生了什么事?
我要么需要一个等同于“--data
”格式的c#MVC。 (目前使用HttpClient.PostAsync
)或找出使用帖子请求继续对话的确切错误。
据我所知,我正在正确复制c#中的帖子请求,所以我不认为有两个问题。 (只有一个发布请求问题,而不是cURL问题,然后是C#实现问题。)
为什么值得我将命令保留为我提交的格式,只用BLOCKCAPITALS替换敏感值。如果它看起来我错过了引号或大括号,那是因为我有并且可能是问题的原因。
答案 0 :(得分:1)
该服务需要application/x-www-form-urlencoded
POST请求
要在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, - data
(HTTP)将POST请求中的指定数据发送到HTTP服务器,就像用户填写HTML表单并按下提交按钮时浏览器一样。这将导致curl使用content-type application / x-www-form-urlencoded将数据传递到服务器。比较-F, - form。