当前位置: 首页 > 知识库问答 >
问题:

使用邮递员从我的本地机器人发出400个错误请求

景国兴
2023-03-14

我正在尝试使用ngrok提供的链接使用邮递员测试我的机器人,即https://xxxxxx.ngrok.io/api/messages.但收到400个错误请求,如下所示

我尝试在我的控件上设置一个断点,它确实命中了,但没有继续执行catch语句。

我知道我的机器人没有问题,因为它在使用模拟器时工作正常。

我的计划是在我的自定义聊天中实现我的bot,而无需注册任何azure服务。

其他信息:

我的请求正文是空的。我跟随这个问题的答案MS bot在本地与postman测试,即使我使用此链接https://xxxxx.ngrok.io/v3/directline/conversations,它也会返回404未找到,如下所示。但是当我使用模拟器打开我的机器人,然后使用 /v3/directline/conversations执行链接时,它工作正常。

共有1个答案

弘阳德
2023-03-14

正如您链接的问题中的答案所述:

在localhost上运行的机器人应该可以通过任何HTTP客户端(如Postman)进行测试,只要您正确地形成请求,这实际上只意味着您只需要一个有效的活动表示的有效负载。

使用emulator时,if构成请求的主体,并成功执行。如果要使用Postman探索API的工作方式,必须根据框架文档形成请求。

API留档声明您需要在请求正文中提供一个有效的TokenParameters对象来获得响应。

要使用主REST API,您需要使用云提供商提供的基本URL:

当用户向您的bot发送消息时,传入的请求包含一个活动对象,该对象具有serviceUrl属性,该属性指定您的bot应向其发送响应的endpoint。要访问Bot连接器服务,请使用serviceUrl值作为API请求的基本URI。

在Bot Framework REST API参考留档中阅读更多信息。

最后,为了尝试回答您的整体问题,我们可以看看NGROK服务只是公开暴露本地环境的一种方式。NGROK服务提供的链接旨在由Bot Framework云服务使用,如本教程所述。当您通过NGROK设置转发时,您可以通过Facebook、Skype等与您的机器人聊天,并在本地运行的应用程序中接收请求。如果您想调用应用程序的endpoint,当它在本地运行时,使用Postman您可以简单地使用localhost:PORT_NUMBER以及您的Dot Net应用程序为其HTTP API提供服务的端口号。

如果查看提供的启动程序代码示例,您将看到第14行中的控制器被注释为服务URL上的请求。使用配置文件中指定的应用程序URL发出GET或POST请求。由于您的应用程序可能还没有身份验证,因此您不需要承载令牌。最后,请记住,POST请求旨在携带一个正文(即使正文是空的)!这可能会给您的工作流带来问题。尝试使用GET请求,因为它是一个更简单的工具。

 类似资料:
  • 我正试着在邮递员上打API。API正在服务器上工作,但我没有收到任何数据。以下是视觉图像: 它是回应我与“没有数据”和400错误的要求。

  • 我正在尝试使用Postman访问API,以使用基本身份验证获取响应,但当我提交数据时,它会给我带来可怕的400错误,这显然表明某些标头设置不正确。 以下是API信息: 作为回应,我应该得到一个JSON形式的加密令牌,而不是得到这个错误。 以下是邮差截图: 我错过了什么吗?

  • 我有一个非常基本的webApi构建/运行(相当模板应用程序,仅此而已),以便遵循一个培训视频。GET和DELETE调用工作正常,PUT和POST给出400错误。诚然,对所有这些都很新,所以我正在寻找一些基本的方向,关于如何排除故障。相关的屏幕截图如下,我很高兴提供其他要求。提前谢了。

  • 当我在Visual Studio 2013中创建一个名为“WCFService1”的全新WCF服务应用程序并立即运行它时,WCF Test Client完成的请求完美无缺地工作。不是惊喜。 当我试图在REST/SOAP客户机(如Postman或SoapUI)中测试这个相同的初始应用程序时,我得到了一个400 Bad Request错误。在像Postman这样的REST客户机中应该改变什么来使对初始

  • 我有一个带有更新方法的控制器。该方法应在RequestBody中获取产品,但这会导致请求错误。我和邮递员一起发了一封邮件。JSON作为原始JSON发送,请求内容类型为application/JSON。 正文中的JSON是 请求响应不良的原因是什么?JSON似乎格式化正确,当没有正文时调用更新方法。

  • 我正在使用实现一个联系人应用程序。现在,我正试图通过发送以下格式的put请求来更新联系人 我将XML作为字符串发送,作为请求的主体。这是我的xmlString(请求主体) 我写了下面的代码来发送更新联系人的PUT请求。 当我试图在中发送请求时,联系人更新成功。但是当我试图运行上面的程序时,我得到了 400错误请求错误 我不知道我哪里出错了。任何帮助都将不胜感激!