C# Watson对话框cURL对话post请求未传递表单数据
当发出如下的post cURL请求以尝试继续创建的对话时,watson会返回一个新的对话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
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,这是否也值得转发给你们?在这里打开一个问题:我将确保团队查看它