Asp classic 如何将带有参数的HTTP POST从经典ASP发送到WEB API?
我试图在同一台机器上的另一个端口上创建对WEB API的调用。它工作正常,返回字符串并命中.NET断点,但从未传递参数..(它为null)。。在传递该字符串的经典ASP代码中是否缺少某些内容?(数据发送) 我的电话号码:Asp classic 如何将带有参数的HTTP POST从经典ASP发送到WEB API?,asp-classic,asp.net-web-api,msxml,Asp Classic,Asp.net Web Api,Msxml,我试图在同一台机器上的另一个端口上创建对WEB API的调用。它工作正常,返回字符串并命中.NET断点,但从未传递参数..(它为null)。。在传递该字符串的经典ASP代码中是否缺少某些内容?(数据发送) 我的电话号码: <% Response.Buffer = True Dim xml ' Set xml = Server.CreateObject("Microsoft.XMLHTTP") Set xml = server.Createobj
<%
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;
}
}
公共类注册codecontroller:ApiController
{
字符串testXmlString=“6”;
公共字符串Post([FromBody]字符串值)
{
返回testXmlString;
}
}
你可能想看看这个答案
另外,按照惯例,在使用WebAPI时,我通常会将所有内容传递给URL中的API。该方法将自动选择值。类似这样的事情可能会有所帮助:
[Route("api/some/specific/url/{someValue}/{someValue2}")]
public HttpResponseMessage Get(int someValue, int someValue2)
{
//Do something with your request
}
您还可以从url直接将参数拉入类中
[Route("api/some/specific/url/{someValue}/{someValue2}")]
public HttpResponseMessage Get([FromURI] SomeClass someClass)
{
//Do something with your request
}
希望这有帮助 我也遇到了这个问题。迟来的回答,但是 我有一个例子,我不能在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
我不太熟悉ASP,但我发现有几个示例都使用JSON将数据发送到Web API函数,而不仅仅是字符串。因此,我创建了一个简单的DTO,然后将数据转换成JSON字符串。请记住将单引号转换为双引号。我想测试数据以确定。谢谢Pete。在这里帮了我大忙(诅咒你遗留的ASP代码)!
public class PayLoad
{
public string Name { get; set; }
}
[Route("api/Values/PostUnidataMethod")]
[HttpPost]
public string PostUnidataMethod([FromBody]PayLoad data)
{
return data.Name;
}