开发者

fsockopen equivalent in JSP

开发者 https://www.devze.com 2023-02-06 01:11 出处:网络
How do i go about converting this code to JSP Any help appreciated..! $fp = fsockopen(\"www.example.com\", 80, $errno, $errstr, 30);

How do i go about converting this code to JSP

Any help appreciated..!

$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n开发者_运维问答";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.example.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}


You can use the JSTL taglib for this. First declare the namespace at the top of the jsp using

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

And then use the c:import tag to include content from the specified url:

<c:import url="htp://www.example.com/" />


Check this out it works.......

<%@ page contentType="text/html" import="java.io.*, java.net.*" %>

<% 
    try {
        Socket s = new Socket("www.java2s.com", 80);

        BufferedReader in = new BufferedReader(new 
            InputStreamReader(s.getInputStream()));
        PrintWriter socketOut = new PrintWriter(s.getOutputStream());

        socketOut.print("GET /index.html\n\n");
        socketOut.flush();

        String line;

        while ((line = in.readLine()) != null){
            out.println(line);
        }

    } catch (Exception e){}
%>


You can do this with the Apache HTTP Components library. Something like the following should work with the HTTP Components library:

<%@ page import="org.apache.http.*, org.apache.http.impl.*, org.apache.http.params.*, org.apache.http.protocol.*, org.apache.http.message.BasicHttpRequest, org.apache.http.util.EntityUtils,  java.net.Socket" %>

<%
HttpParams params = new SyncBasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, "UTF-8");
HttpProtocolParams.setUserAgent(params, "HttpComponents/1.1");
HttpProtocolParams.setUseExpectContinue(params, true);

HttpProcessor httpproc = new ImmutableHttpProcessor(new HttpRequestInterceptor[] {
        new RequestContent(),
        new RequestTargetHost(),
        new RequestConnControl(),
        new RequestUserAgent(),
        new RequestExpectContinue()});

HttpRequestExecutor httpexecutor = new HttpRequestExecutor();

HttpContext context = new BasicHttpContext(null);
HttpHost host = new HttpHost("www.example.com", 80);

DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
ConnectionReuseStrategy connStrategy = new DefaultConnectionReuseStrategy();

context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, host);

try 
{        
     Socket socket = new Socket(host.getHostName(), host.getPort());
     conn.bind(socket, params);

     BasicHttpRequest request = new BasicHttpRequest("GET", "/");


     request.setParams(params);
     httpexecutor.preProcess(request, httpproc, context);
     HttpResponse response = httpexecutor.execute(request, conn, context);
     response.setParams(params);
     httpexecutor.postProcess(response, httpproc, context);

%>
<%=EntityUtils.toString(response.getEntity())%>
<%
} 
finally 
{
    conn.close();
}
%>
0

精彩评论

暂无评论...
验证码 换一张
取 消