当前位置: 首页 > 面试题库 >

使用经典ASP访问请求的正文?

有骏奇
2023-03-14
问题内容

如何访问客户端发布到经典ASP服务器的内容?我知道有Request.Forms变量,但是客户端的请求不是使用Form发出的。客户端请求的主体只是使用标准POST语句生成的字符串。谢谢


问题答案:

如果客户端发送的请求的内容类型不是表单数据,则需要读取请求字节。在这种情况下,请求不是可通过名称-
值对访问的表单数据,因此您不能使用Request.Form集合。我建议研究BinaryRead方法。

读取发布的数据并转换为字符串:

If Request.TotalBytes > 0 Then
    Dim lngBytesCount
        lngBytesCount = Request.TotalBytes
    Response.Write BytesToStr(Request.BinaryRead(lngBytesCount))
End If

Function BytesToStr(bytes)
    Dim Stream
    Set Stream = Server.CreateObject("Adodb.Stream")
        Stream.Type = 1 'adTypeBinary
        Stream.Open
        Stream.Write bytes
        Stream.Position = 0
        Stream.Type = 2 'adTypeText
        Stream.Charset = "iso-8859-1"
        BytesToStr = Stream.ReadText
        Stream.Close
    Set Stream = Nothing
End Function

希望能帮助到你。

更新#1:

使用JScript

if(Request.TotalBytes > 0){
    var lngBytesCount = Request.TotalBytes
    Response.Write(BytesToStr(Request.BinaryRead(lngBytesCount)))
}

function BytesToStr(bytes){
    var stream = Server.CreateObject("Adodb.Stream")
        stream.type = 1
        stream.open
        stream.write(bytes)
        stream.position = 0
        stream.type = 2
        stream.charset = "iso-8859-1"
    var sOut = stream.readtext()
        stream.close
    return sOut
}


 类似资料:
  • [Microsoft][ODBC驱动程序管理器]未找到数据源名称,且未指定默认驱动程序。 是什么导致了这个错误?

  • 我正在尝试为我们网站上运行在单独服务器上的经典asp部分实现单点登录。我已经使用simpleSAMLphp在另一台服务器上实现了php SSO。我正在尝试使用shibboleth来实现asp/IIS的经典功能。我已经到达了我们身份提供者的登录页面,但一旦我进行身份验证,我就会卡在/SAML2/POST上,并且有一个网页说找不到我服务器的ip地址。我曾尝试实施在论坛中找到的修复,但仍然没有取得任何进

  • 这里有什么问题? 另外,我是否可以不使用而直接获取原始请求?

  • 问题内容: 我有以下Node.js代码: 现在,如果我发布类似的内容: 我得到了预期的结果。现在,如果我想获得完整的请求正文怎么办?我尝试这样做,但是Node.js抛出一个异常,说“ 第一个参数必须是字符串或Buffer ”,然后转到“无限循环”,并出现异常,指出“ 发送标头后不能设置标头 ”。即使我再写了也是这样。 这里有什么问题? 另外,我可以不使用而直接获得原始请求吗? 问题答案: Expr

  • 如何在JAX-RS中实现WriterInterceptor接口时访问请求头? 完整的代码如下:

  • 问题内容: 我正在尝试从w3scools修改脚本,以结合使用asp和ajax来查询数据库并返回结果。 这是代码: 我想将select字段替换为2个输入字段。 有人可以告诉我如何修改javascript,以便输入值和querystring一起传递,以及需要在表单上更改哪些内容以调用函数。 谢谢 问题答案: 这完全取决于您希望页面如何操作。您能更具体一点吗? 当您说“输入值”时,您的意思是一个文本框?