如何检查是否可以从PC访问URL?

时间:2013-06-08 06:48:29

标签: java struts-1

我们在应用程序中使用struts 1.3。我们有如下所述的要求 -

登录页面有按钮。现在,

  1. 如果可以从用户PC访问网址,请显示按钮。
  2. 否则不要表现出来。
  3. 要检查URL可访问性,我使用的是XMLHttpRequest.responseText。以下是我的代码:

    <html>
      <head>
        <title>Test html page</title>
        <script type="text/javascript">
          function checkURL()
          {
            var xmlHttp = null;
            var theUrl = "http://www.googlewetuyyu.co.in";
            xmlHttp = new XMLHttpRequest();
            xmlHttp.open( "GET", theUrl, false );
            alert(xmlHttp.responseText);
          }
        </script>
      </head>
      <body onload="checkURL();">
        <b>Hello World!</b>
      </body>
    </html>
    

    但我仍然没有在警报框中得到任何东西。

    [我正在修改一下]

    它实际上在IE中工作。但不是在使用chrome。请提出解决方案。

    谢谢, Kartic

3 个答案:

答案 0 :(得分:1)

使用HttpUrlConnection课程。它是getResponseCode(),如果返回2XX的值意味着你的PC上的url工作正常。

您也可以使用apache中的HttpComponents-HttpClient。 这是一个简短的片段,

HttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet("url_to_check");
HttpResponse response = client.execute(httpGet);

您还可以将responseHandler附加到execute对象以简化操作。

答案 1 :(得分:1)

由于跨域AJAX请求因same origin policy而无法工作,我建议采取两种方式。

包含重写CSS文件

<link type="text/css" href="http://website.com/normal.css" />
<link type="text/css" href="http://otherwebsite.com/override.css" />

<div id="login" class="login">
    <!-- Your button code -->
</div>

normal.css

.login
{
    display: none;
}

override.css

#login
{
    display: block;
}

如果客户端有权访问http://otherwebsite.com,则样式将被覆盖,因为将加载CSS文件并且ID比类更重要。

图像加载测试

<img id="img" style="width: 0;height: 0;" src="http://otherdomain.com/smallimage.png" />
<script>
    $("#img").load(function() { alert("image loaded correctly"); })
    .error(function() { alert("error loading image"); });
</script>

答案 2 :(得分:0)

如果您在客户端运行小程序

您可以使用URLConnection类发送HTTP请求,如下所示:

String url = "http://www.mywebsite.com";
String query = "param1=value1";
URLConnection connection = new URL(url + "?" + query).openConnection();
connection.setRequestProperty("Accept-Charset", charset);
InputStream response = connection.getInputStream();

如果您是代理人,可以使用以下方式指定:

java -Dhttp.proxyHost=webcache.example.com -Dhttp.proxyPort=8080

如果您要发送HTTPS请求,请使用HttpsURLConnection

如果您在浏览器中呈现HTML,请使用Javascript

function httpGet(theUrl)
{
    var xmlHttp = null;

    xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", theUrl, false );
    xmlHttp.send( null );
    return xmlHttp.responseText;
}