gpt4 book ai didi

asp-classic - 如何从带有参数的经典 ASP 向 WEB API 发送 HTTP POST?

转载 作者:行者123 更新时间:2023-12-04 03:19:51 26 4
gpt4 key购买 nike

我正在尝试在同一台机器上的另一个端口上创建对 WEB API 的调用。它工作正常并发回字符串并命中 .NET 断点但参数永远不会被传递..(它是空的)..我在经典的 ASP 代码中是否遗漏了一些东西来传递那个字符串? (数据发送)

我的调用代码:

  <%
Response.Buffer = True
Dim xml
' Set xml = Server.CreateObject("Microsoft.XMLHTTP")
Set xml = server.Createobject("MSXML2.XMLHTTP")

DataToSend="<?xml version=""1.0"" encoding=""UTF-8""?><codes sku=""123123"" num-codes=""234234"" />"

xml.Open "POST", _
"http://localhost:1303/api/RegistrationCode", _
False

xml.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xml.setRequestHeader "X-VitalSource-API-Key", "xxx"

xml.Send DataToSend

'Display the HTML both as HTML and as text
Response.Write "<h1>The HTML text</h1><xmp>"
Response.Write xml.responseText
Response.Write "</xmp><p><hr><p><h1>The HTML Output</h1>"
Response.Write xml.responseText
Set xml = Nothing
%>

WEB API 代码:

   public class RegistrationCodeController : ApiController
{
string testXmlString = "<SomeValue>6</SomeValue>";



public string Post([FromBody]string value)
{
return testXmlString;
}

}

最佳答案

我也遇到了这个问题。迟到的答案,但是......

我有一个案例,我无法发送 URL 中的数据,因为它非常大并且超过了大小限制,所以我不得不使用 POST,而不是 GET。经过反复试验,这就是我所做的:

在经典的 ASP 文件中

Public Function PostData(link, data)
on error resume next

if link<>"" then
data = "{'Name': '" & data & "'}"
data = Replace(data, "'", """")

Dim oXMLHTTP
Set oXMLHTTP = CreateObject("Msxml2.XMLHTTP.3.0")
if oXMLHTTP is nothing then Set oXMLHTTP = CreateObject("Microsoft.XMLHTTP")

oXMLHTTP.Open "POST", link, False
oXMLHTTP.setRequestHeader "Content-Type", "application/json"
oXMLHTTP.send data

If oXMLHTTP.Status = 200 Then
PostData = oXMLHTTP.responseText
Else
response.Write "Status: " & oXMLHTTP.Status & " | "
response.Write oXMLHTTP.responseText
response.end
End If

end if
End Function

在我的 WebAPI 函数中:

public class PayLoad
{
public string Name { get; set; }
}

[Route("api/Values/PostUnidataMethod")]
[HttpPost]
public string PostUnidataMethod([FromBody]PayLoad data)
{
return data.Name;
}

我对ASP不是很熟悉,但是我发现几个例子都是使用JSON来发送数据给Web API函数,而不仅仅是一个字符串。所以我创建了一个简单的DTO,然后将数据做成了一个JSON字符串。请记住将单引号转换为双引号。我喜欢JSONLint测试数据以确保。

关于asp-classic - 如何从带有参数的经典 ASP 向 WEB API 发送 HTTP POST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17933301/

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