Asp.net aspx页面上的经典asp页面httprequest?

Asp.net aspx页面上的经典asp页面httprequest?,asp.net,vbscript,asp-classic,Asp.net,Vbscript,Asp Classic,我很难找到在classic中使用httprequest从aspx中提取数据的方法,该aspx也在调用Request 经典代码: HostURL = "https://URL" NetURL = "middle.aspx?HostURL=" & HostUR Dim oXMLHTTP Dim strStatusTest Set oXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP.3.0")

我很难找到在classic中使用httprequest从aspx中提取数据的方法,该aspx也在调用Request

经典代码:

    HostURL = "https://URL"
    NetURL = "middle.aspx?HostURL=" & HostUR

    Dim oXMLHTTP
    Dim strStatusTest

    Set oXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP.3.0")

    oXMLHTTP.Open "POST", NetURL, False
    oXMLHTTP.Send
    strStatusText = oXMLHTTP.responseText 
netURL aspx代码

private void Page_Load(object sender, System.EventArgs e){
    String host = getParam();
       HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(host);
        HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();

    String cc;
        using (Stream stream = response.GetResponseStream())
       {
          StreamReader reader = new StreamReader(stream, Encoding.UTF8);
          cc = reader.ReadToEnd();
       }       
    Response.Write(cc);
}
所以我试图做的是,当我从classic调用aspx页面时,加载的aspx会得到一个我需要asp页面拥有的密钥

aspx代码运行良好,它确实检索到了我需要的密钥

其他信息:我们关闭了TLS 1.0,manager不想进行注册表修复。我也是一个非常初级的程序员,所以这甚至可能不起作用,我不知道


提前感谢您的帮助

您的代码存在一些问题

正如JohnRC的评论所指出的-
https://URL
可疑。我假设你已经用这个代替了一个你不想在这个论坛上显示的实际URL

NetURL必须是绝对URL,即

NetURL = "http://www.yourdomain.com/middle.aspx?HostURL=" & HostURL
另外,在您提供的代码中,您在第二行中的
HostURL
末尾保留了“L”,如果这是在实际代码中,那么显然变量不会传递到您的aspx页面


最后,这不是一个错误,但我建议使用
MSXML2.ServerXMLHTTP.6.0
而不是3.0-它调用最新版本的MSXML

我不评论为什么以及为什么不这样做。。。但我有一个很好的用例。 我写了一个库,从那时起,100个经典的ASP页面(在1998年到2005年)使用它。 此库处理并包装FileSystemObject。但是在较新的操作系统中,我在映射方面遇到了很多问题。所以我决定开始使用这个库的ASPX版本(在很多ASPX中使用:-)。 因此,我通过在库的main中添加“on this request do this function”代码,将ASPX库转换为POST Web服务。 然后我重写了FSO.inc,使用ServerXMLHTTP调用FSO.ASPX,请求写入/读取/删除/任何文件。 到目前为止,没有问题。。。 在ASPX中,在我的公共共享全局类FSO下面:

<%
Select Case UCase(Current.Request("f"))
Case "READALL":     Response.write( FSO.ReadAll(Current.Request("filename")) )
Case "FILEEXISTS":  Response.write( FSO.FileExists(Current.Request("filename")) )
End select
%>

也许不是最充分的解决方案,但是如果你有一卡车的ASP,并且没有资源来重写它,这是可行的…

实际的问题是什么?您是否报告了错误?经典代码行2中存在语法错误,并且NetURL设置为
https://URL
可疑。另外,由于您没有发送任何数据,我建议您使用GET而不是POST。我经常在经典ASP中使用XMLHTTP,它工作得很好。
function CallFSO(exec)
    Dim objSrvHTTP
    Set objSrvHTTP = Server.CreateObject ("MSXML2.ServerXMLHTTP")
    objSrvHTTP.SetProxy 1
    objSrvHTTP.open "POST", "http://.......your server..../FSO.aspx", False
    objSrvHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    objSrvHTTP.send exec
    IF objSrvHTTP.status = 200 Then CallFSO = objSrvHTTP.responseText
    Set objSrvHTTP = nothing
End function

FUNCTION ReadAll(Filename)
    ReadAll = CallFSO( "f=readAll&FileName=" & filename)
End function

Function FileExists(Filename)
    FileExists = instr(CallFSO( "f=FileExists&FileName=" & filename), "True") > 0
End Function