Asp.net aspx页面上的经典asp页面httprequest?
我很难找到在classic中使用httprequest从aspx中提取数据的方法,该aspx也在调用Request 经典代码: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")
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