gpt4 book ai didi

asp.net - POST 参数未使用 VBA 传递到 Web API

转载 作者:行者123 更新时间:2023-12-02 16:57:29 27 4
gpt4 key购买 nike

我有一个标准的 WebAPI,它接受 POST 并获取这些参数并处理某些事情。我不确定问题是出在 VBA 还是 ASP.Net WebAPI,所以我交叉发帖。

我使用 Postman 来测试 API,当我发布键/值参数时它工作正常。

我也尝试了以下方法和相关参数,得到了相同的结果:

Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")

我在使用 VBA 时遇到问题,在 WebAPI 上的 Visual Studio 中进行调试时,我看不到我在任何地方发布的值。就像请求是空白的一样。我的 WebAPI 随后抛出错误,因为缺少参数并且需要某些参数。

我不确定这是否是 VBA 端或 ASP.NET WebAPI 端的问题,因此我交叉发帖,希望有人能够突出显示或发现我做错了什么。

Private Sub Command4_Click()

Dim argumentString1 As String

argumentString1 = "companyId=228&secondsToLog=15&subject=TestBackup123&description=TestDescription" & _
"&category=&tag=&ticketType=task&assignee=gavin&requesterEmail=bob@smith.com" & _
"&submitterName=gavin&status=open&priority=normal"

Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
URL = "http://localhost:64874/api/zendeskhelper"
objHTTP.Open "POST", URL, False
objHTTP.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
objHTTP.send (argumentString1)


txtresult = objHTTP.responsetext & ": " & argumentString1
End Sub

Web API 结构如下所示:

public HttpResponseMessage Post([FromUri] TicketBody ticket)
{
// Nothing is bound to ticket like it is in Postman
}

任何帮助或指示将不胜感激!

最佳答案

您发送数据的方式,您需要删除[FromUri]。使用 [FromUri] 时,ASP.NET 引擎将在 Uri 中查找数据,而不是请求正文。

public HttpResponseMessage Post(TicketBody ticket)
{
// 'ticket should not be null now
}

另一方面,如果您需要保留 [FromUri] 您可以将调用更改为:

Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
URL = "http://localhost:64874/api/zendeskhelper?" & argumentString1
objHTTP.Open "POST", URL, False
objHTTP.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
objHTTP.send ("")

关于asp.net - POST 参数未使用 VBA 传递到 Web API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37917949/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com