Package railo.commons.net.http.httpclient4

Examples of railo.commons.net.http.httpclient4.HTTPResponse4Impl


                 
                  // read content
                  if(method!=METHOD_HEAD) {
                    is = rsp.getContentAsStream();
                      if(is!=null &&isGzipEncoded(contentEncoding))
                        is = rsp.getStatusCode()!=200? new CachingGZIPInputStream(is):new GZIPInputStream(is);
                  }   
                    try {
                      try{
                      str = is==null?"":IOUtil.toString(is,responseCharset);
                      }
                      catch(EOFException eof){
                        if(is instanceof CachingGZIPInputStream) {
                          str = IOUtil.toString(is=((CachingGZIPInputStream)is).getRawData(),responseCharset);
                        }
                        else throw eof;
                      }
                    }
                    catch (UnsupportedEncodingException uee) {
                      str = IOUtil.toString(is,(Charset)null);
                    }
                }
                catch (IOException ioe) {
                  throw Caster.toPageException(ioe);
                }
                finally {
                  IOUtil.closeEL(is);
                }
                   
                if(str==null)str="";
            if(resolveurl){
              //if(e.redirectURL!=null)url=e.redirectURL.toExternalForm();
              str=new URLResolver().transform(str,e.response.getTargetURL(),false);
            }
            cfhttp.set(FILE_CONTENT,str);
            try {
              if(file!=null){
                IOUtil.write(file,str,pageContext.getConfig().getWebCharset(),false);
                    }
                }
            catch (IOException e1) {}

            if(name!=null) {
                    Query qry = CSVParser.toQuery( str, delimiter, textqualifier, columns, firstrowasheaders  );
                    pageContext.setVariable(name,qry);
            }
        }
        // Binary
        else {
          byte[] barr=null;
            if(isGzipEncoded(contentEncoding)){
              if(method!=METHOD_HEAD) {
                is=rsp.getContentAsStream();
                is = rsp.getStatusCode()!=200?new CachingGZIPInputStream(is) :new GZIPInputStream(is);
              }
             
              try {
                try{
                  barr = is==null?new byte[0]: IOUtil.toBytes(is);
View Full Code Here


      try {
      if(httpContext==null)httpContext = new BasicHttpContext();
       
/////////////////////////////////////////// EXECUTE /////////////////////////////////////////////////
    Executor4 e = new Executor4(this,client,httpContext,req,redirect);
    HTTPResponse4Impl rsp=null;
    if(timeout<0){
      try{
        rsp = e.execute(httpContext);
      }
     
      catch(Throwable t){
        if(!throwonerror){
          setUnknownHost(cfhttp, t);
          return;
        }
        throw toPageException(t);
       
      }
    }
    else {
      e.start();
      try {
        synchronized(this){//print.err(timeout);
          this.wait(timeout);
        }
      } catch (InterruptedException ie) {
        throw Caster.toPageException(ie);
      }
      if(e.t!=null){
        if(!throwonerror){
          setUnknownHost(cfhttp,e.t);
          return;
        }
        throw toPageException(e.t)
      }
     
      rsp=e.response;
     
     
      if(!e.done){
        req.abort();
        if(throwonerror)
          throw new HTTPException("408 Request Time-out","a timeout occurred in tag http",408,"Time-out",rsp.getURL());
        setRequestTimeout(cfhttp)
        return;
        //throw new ApplicationException("timeout"); 
      }
    }
   
/////////////////////////////////////////// EXECUTE /////////////////////////////////////////////////
    Charset responseCharset=CharsetUtil.toCharset(rsp.getCharset());
  // Write Response Scope
    //String rawHeader=httpMethod.getStatusLine().toString();
      String mimetype=null;
      String contentEncoding=null;
     
    // status code
      cfhttp.set(STATUSCODE,((rsp.getStatusCode()+" "+rsp.getStatusText()).trim()));
      cfhttp.set(STATUS_CODE,new Double(rsp.getStatusCode()));
      cfhttp.set(STATUS_TEXT,(rsp.getStatusText()));
      cfhttp.set(HTTP_VERSION,(rsp.getProtocolVersion()));
     
    //responseHeader
      railo.commons.net.http.Header[] headers = rsp.getAllHeaders();
      StringBuffer raw=new StringBuffer(rsp.getStatusLine()+" ");
      Struct responseHeader = new StructImpl();
      Struct cookie;
      Array setCookie = new ArrayImpl();
      Query cookies=new QueryImpl(new String[]{"name","value","path","domain","expires","secure","httpOnly"},0,"cookies");
     
          for(int i=0;i<headers.length;i++) {
            railo.commons.net.http.Header header=headers[i];
            //print.ln(header);
           
            raw.append(header.toString()+" ");
            if(header.getName().equalsIgnoreCase("Set-Cookie")) {
              setCookie.append(header.getValue());
              parseCookie(cookies,header.getValue());
            }
            else {
                //print.ln(header.getName()+"-"+header.getValue());
              Object value=responseHeader.get(KeyImpl.getInstance(header.getName()),null);
              if(value==null) responseHeader.set(KeyImpl.getInstance(header.getName()),header.getValue());
              else {
                  Array arr=null;
                  if(value instanceof Array) {
                      arr=(Array) value;
                  }
                  else {
                      arr=new ArrayImpl();
                      responseHeader.set(KeyImpl.getInstance(header.getName()),arr);
                      arr.appendEL(value);
                  }
                  arr.appendEL(header.getValue());
              }
            }
           
            // Content-Type
            if(header.getName().equalsIgnoreCase("Content-Type")) {
              mimetype=header.getValue();
              if(mimetype==null)mimetype=NO_MIMETYPE;
            }
           
            // Content-Encoding
            if(header.getName().equalsIgnoreCase("Content-Encoding")) {
              contentEncoding=header.getValue();
            }
           
          }
          cfhttp.set(RESPONSEHEADER,responseHeader);
          cfhttp.set(KeyConstants._cookies,cookies);
          responseHeader.set(STATUS_CODE,new Double(rsp.getStatusCode()));
          responseHeader.set(EXPLANATION,(rsp.getStatusText()));
          if(setCookie.size()>0)responseHeader.set(SET_COOKIE,setCookie);
         
      // is text
          boolean isText=
            mimetype == null || 
            mimetype == NO_MIMETYPE || HTTPUtil.isTextMimeType(mimetype);
           
        // is multipart
          boolean isMultipart= MultiPartResponseUtils.isMultipart(mimetype);       
        
          cfhttp.set(KeyConstants._text,Caster.toBoolean(isText));
         
      // mimetype charset
          //boolean responseProvideCharset=false;
          if(!StringUtil.isEmpty(mimetype,true)){
            if(isText) {
              String[] types=HTTPUtil.splitMimeTypeAndCharset(mimetype,null);
              if(types[0]!=null)cfhttp.set(KeyConstants._mimetype,types[0]);
              if(types[1]!=null)cfhttp.set(CHARSET,types[1]);
                 
            }
            else cfhttp.set(KeyConstants._mimetype,mimetype);
          }
          else cfhttp.set(KeyConstants._mimetype,NO_MIMETYPE);

      // File
          Resource file=null;
         
          if(strFile!=null && strPath!=null) {
              file=ResourceUtil.toResourceNotExisting(pageContext, strPath).getRealResource(strFile);
          }
          else if(strFile!=null) {
              file=ResourceUtil.toResourceNotExisting(pageContext, strFile);
          }
          else if(strPath!=null) {
              file=ResourceUtil.toResourceNotExisting(pageContext, strPath);
              //Resource dir = file.getParentResource();
              if(file.isDirectory()){
                file=file.getRealResource(req.getURI().getPath());// TODO was getName() ->http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/URI.html#getName()
              }
             
          }
          if(file!=null)pageContext.getConfig().getSecurityManager().checkFileLocation(file);
         
         
          // filecontent
          InputStream is=null;
        if(isText && getAsBinary!=GET_AS_BINARY_YES) {
          String str;
                try {
                 
                  // read content
                  if(method!=METHOD_HEAD) {
                    is = rsp.getContentAsStream();
                      if(is!=null &&isGzipEncoded(contentEncoding))
                        is = rsp.getStatusCode()!=200? new CachingGZIPInputStream(is):new GZIPInputStream(is);
                  }   
                    try {
                      try{
                      str = is==null?"":IOUtil.toString(is,responseCharset);
                      }
                      catch(EOFException eof){
                        if(is instanceof CachingGZIPInputStream) {
                          str = IOUtil.toString(is=((CachingGZIPInputStream)is).getRawData(),responseCharset);
                        }
                        else throw eof;
                      }
                    }
                    catch (UnsupportedEncodingException uee) {
                      str = IOUtil.toString(is,(Charset)null);
                    }
                }
                catch (IOException ioe) {
                  throw Caster.toPageException(ioe);
                }
                finally {
                  IOUtil.closeEL(is);
                }
                   
                if(str==null)str="";
            if(resolveurl){
              //if(e.redirectURL!=null)url=e.redirectURL.toExternalForm();
              str=new URLResolver().transform(str,e.response.getTargetURL(),false);
            }
            cfhttp.set(FILE_CONTENT,str);
            try {
              if(file!=null){
                IOUtil.write(file,str,pageContext.getConfig().getWebCharset(),false);
                    }
                }
            catch (IOException e1) {}

            if(name!=null) {
                    Query qry = CSVParser.toQuery( str, delimiter, textqualifier, columns, firstrowasheaders  );
                    pageContext.setVariable(name,qry);
            }
        }
        // Binary
        else {
          byte[] barr=null;
            if(isGzipEncoded(contentEncoding)){
              if(method!=METHOD_HEAD) {
                is=rsp.getContentAsStream();
                is = rsp.getStatusCode()!=200?new CachingGZIPInputStream(is) :new GZIPInputStream(is);
              }
             
              try {
                try{
                  barr = is==null?new byte[0]: IOUtil.toBytes(is);
                }
                catch(EOFException eof){
                  if(is instanceof CachingGZIPInputStream)
                    barr = IOUtil.toBytes(((CachingGZIPInputStream)is).getRawData());
                  else throw eof;
                }
          }
              catch (IOException t) {
                throw Caster.toPageException(t);
          }
          finally{
            IOUtil.closeEL(is);
          }
            }
            else {
              try {
                if(method!=METHOD_HEAD) barr = rsp.getContentAsByteArray();
                else barr=new byte[0];
          }
              catch (IOException t) {
                throw Caster.toPageException(t);
          }
            }
            //IF Multipart response get file content and parse parts
            if(barr!=null) {
            if(isMultipart) {
              cfhttp.set(FILE_CONTENT,MultiPartResponseUtils.getParts(barr,mimetype));
            } else {
              cfhttp.set(FILE_CONTENT,barr);
            }
            }
            else
            cfhttp.set(FILE_CONTENT,"");
           
           
            if(file!=null) {
              try {
                if(barr!=null)IOUtil.copy(new ByteArrayInputStream(barr),file,true);
              }
              catch (IOException ioe) {
                    throw Caster.toPageException(ioe);
              }
            }  
        }
         
      // header   
          cfhttp.set(KeyConstants._header,raw.toString());
          if(!isStatusOK(rsp.getStatusCode())){
            String msg=rsp.getStatusCode()+" "+rsp.getStatusText();
              cfhttp.setEL(ERROR_DETAIL,msg);
              if(throwonerror){
                throw new HTTPException(msg,null,rsp.getStatusCode(),rsp.getStatusText(),rsp.getURL());
              }
          }
    }
    finally {
      //rsp.release();
View Full Code Here

      SystemUtil.notify(http);
    }
  }
 
  public HTTPResponse4Impl execute(HttpContext context) throws IOException  {
    return response=new HTTPResponse4Impl(null,context,req,client.execute(req,context));
  }
View Full Code Here

      Iterator<Entry<String, String>> it = headers.entrySet().iterator();
      Entry<String, String> e;
      int index=0;
      while(it.hasNext()){
        e = it.next();
        rtn[index++]=new HeaderImpl(e.getKey(),e.getValue());
      }
      return rtn;
  }
View Full Code Here

            if(doMultiPart) {
              try {
                Resource res = param.getFile();
                parts.add(new FormBodyPart(
                    param.getName(),
                    new ResourceBody(res, mt, res.getName(), cs)
                ));
                //parts.add(new ResourcePart(param.getName(),new ResourcePartSource(param.getFile()),getContentType(param),_charset));
              }
              catch (FileNotFoundException e) {
                throw new ApplicationException("can't upload file, path is invalid",e.getMessage());
View Full Code Here

  public static Entity getEmptyEntity(String contentType) {
    return new EmptyHttpEntity(contentType);
  }

  public static Entity getByteArrayEntity(byte[] barr, String contentType) {
    return new ByteArrayHttpEntity(barr,contentType);
  }
View Full Code Here

      }
    }
 

  public static Entity getEmptyEntity(String contentType) {
    return new EmptyHttpEntity(contentType);
  }
View Full Code Here

  public static Entity getTemporaryStreamEntity(TemporaryStream ts,String contentType) {
    return new TemporaryStreamHttpEntity(ts,contentType);
  }

  public static Entity getResourceEntity(Resource res, String contentType) {
    return new ResourceHttpEntity(res,contentType);
  }
View Full Code Here

  public static Entity getByteArrayEntity(byte[] barr, String contentType) {
    return new ByteArrayHttpEntity(barr,contentType);
  }

  public static Entity getTemporaryStreamEntity(TemporaryStream ts,String contentType) {
    return new TemporaryStreamHttpEntity(ts,contentType);
  }
View Full Code Here

TOP

Related Classes of railo.commons.net.http.httpclient4.HTTPResponse4Impl

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.