C# Watson对话框cURL对话post请求未传递表单数据

C# Watson对话框cURL对话post请求未传递表单数据,c#,curl,ibm-watson,watson-dialog,C#,Curl,Ibm Watson,Watson Dialog,当发出如下的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/dialog

当发出如下的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 -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#wrapper时,遇到了POST请求无法正确传输表单数据的相同问题

发生什么事了

我需要一个与“
--data
”格式相当的c#MVC。(目前正在使用
HttpClient.PostAsync
)或找出使用post请求继续对话的确切错误

据我所知,我正确地复制了c#中的post请求,因此我不认为有两个问题。(只有一个post请求问题,不是cURL问题,而是C#实现问题。)


值得一提的是,我将命令保留为我提交的格式,只是将敏感值替换为块大写。如果看起来我漏掉了引号或花括号,那是因为我漏掉了,而且可能是问题的原因

服务需要
应用程序/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使用内容类型application/x-www-form-urlencoded将数据传递给服务器。与-F、-form相比


Curl

成功了,谢谢!为什么IBM文档会将它列为:curl-u“{username}”:“{password}”\-X POST--form conversation\u id={conversation\u id}--form client\u id={client\u id}--form input=“Hi Hello”“{dialog\u id}/conversation”我会确保我们能解决这个问题谢谢!(不是叫你出来,而是…)我认为对话示例练习中也有两个错误。有没有一个好的地方可以转寄?另外,我已经完成了c#wrapper并将很快发布到git,这是否也值得转发给你们?在这里打开一个问题:我将确保团队查看它