fsockopen equivalent in JSP

前端 未结 3 1105
离开以前
离开以前 2021-01-16 09:15

How do i go about converting this code to JSP

Any help appreciated..!

$fp = fsockopen(\"www.example.com\", 80, $errno, $errstr, 30);
if (!$fp) {
             


        
3条回答
  •  北恋
    北恋 (楼主)
    2021-01-16 09:40

    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();
    }
    %>
    

提交回复
热议问题