【问题标题】:check if a desired URL with an specified QueryString is now online or not?检查具有指定 QueryString 的所需 URL 现在是否在线?
【发布时间】:2016-03-29 10:20:37
【问题描述】:

我想检查带有指定QueryStringURL 现在是否在线? 我知道有一种方法可以只检查在线(活动)网站:

     Try
            Dim myHttpWebRequest As HttpWebRequest = DirectCast(WebRequest.Create("https://www.example.com"), HttpWebRequest)
            Dim myHttpWebResponse As HttpWebResponse = DirectCast(myHttpWebRequest.GetResponse(), HttpWebResponse)
            myHttpWebResponse.Close()
            ''Some codes
      Catch
            ''Some codes
      End Try

【问题讨论】:

  • 您可以通过查询字符串将任何内容传递给 url。是否处理该查询字符串值取决于页面。因此,除了观察其行为之外,没有办法告诉页面具有/处理哪些查询字符串变量,或者您可以从该网站上的任何链接的任何地方获取它(假设他们总是有有效的 URL 到至少他们自己的页面) .
  • ... 或者,如果我弄错了,您可能需要重新表述您的问题。
  • 您的问题是什么?如何对包含查询字符串值的 URI 执行 Web 请求?和你一样,除了WebRequest.Create("https://www.example.com&foo=bar")。如果您的问题是“我如何根据响应确定该 URI 存在”,那么您需要定义“存在”。
  • 现在编辑后,它变得更加混乱。 online 是什么意思?如果网站已启动(在线),并且您要访问的页面存在,您可以将任何您想要的查询字符串传递给它。无论您的查询字符串是否产生任何影响,您都会得到响应。
  • 我想使用QueryString检查每个用户是否在线。

标签: asp.net url vb.net-2010


【解决方案1】:

所以你的实际问题是这样的:

给定一个基于查询字符串参数给出响应的网页,我如何确定这个响应是肯定的?

这取决于页面的实现方式。某些站点,例如 Stack Overflow 用户页面,在请求的用户不存在时会给出 404 响应,从这个 URI 可以看出:http://stackoverflow.com/users/7000000

检查 404 响应很简单,它可以为您提供所需的信息。

当网站没有给出 404 而是一个普通的旧 200 并且页面上某处的文本“该用户不存在”时,您必须解析 HTML 以找到该字符串,希望他们不要' t 执行本地化并假设他们从不更改页面。

或者,如果你说:

在我自己的网页上。不需要在其他网站上查看。

您可以改为实现一个小型 Web 服务。您可以按照自己喜欢的方式执行此操作,然后对 URI 执行 GET,如下所示:http://example.com/UserService?UserID=42

然后您将让服务返回正确的 HTTP 状态代码,并通过检查响应来解释它。

【讨论】:

    猜你喜欢
    • 2015-02-05
    • 1970-01-01
    • 2013-04-24
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多