转:使用基本认证从WebServer获取数据
[@more@]
ServletUtils
BUFFSIZE = 4 * 1024;
ServletUtils()
HttpURLConnection getServerConnection( String server, String username,
String password )
Exception
HttpURLConnection urlConn = ;
URL url = URL(server);
String userPassword = username + + password;
String encoding = sun.misc.BASE64Encoder().encode (userPassword.getBytes());
urlConn = (HttpURLConnection) url.openConnection();
urlConn.setDoOutput();
urlConn.setDoInput();
urlConn.setUseCaches();
urlConn.setDefaultUseCaches();
urlConn.setRequestProperty (, + encoding);
urlConn;
Object sendRequest(HttpServletRequest req, String servletUrl,
String username, String password)
CMSAccessException
Object responseObj = ;
HttpURLConnection urlConn = ;
String res = ;
System.out.println( );
System.out.println( + username );
System.out.println( + password );
urlConn = this.getServerConnection(servletUrl, username, password);
System.out.println( + servletUrl );
System.out.println( );
String contenttype = req.getHeader( );
(contenttype != )
urlConn.setRequestProperty(, contenttype);
urlConn.setRequestProperty(, );
BufferedOutputStream connOut = BufferedOutputStream(urlConn.getOutputStream());
System.out.println( );
urlConn.connect();
[] buffer = [ BUFFSIZE ];
len = 0;
System.out.println( );
ServletInputStream in = req.getInputStream();
System.out.println( );
((len = in.read(buffer,0,buffer.length )) >-1)
connOut.write(buffer,0,len);
System.out.println( );
connOut.flush();
connOut.close();
in.close();
System.out.println( );
ObjectInputStream inputFromServlet = ObjectInputStream(urlConn.getInputStream());
System.out.println( );
responseObj = inputFromServlet.readObject();
System.out.println( );
inputFromServlet.close();
(Exception ex)
CMSAccessException ( +
ex.toString() );
( urlConn != )
urlConn.disconnect();
urlConn = ;
( responseObj CMSAccessException )
(CMSAccessException)responseObj;
responseObj;
String sendXDBServletRequest(HttpServletRequest req, String servletUrl,
String username, String password)
CMSAccessException
HttpURLConnection urlConn = ;
StringBuffer sb = StringBuffer();
URL url = URL(servletUrl);
Authenticator.setDefault( AuthImpl(username,password));
urlConn = (HttpURLConnection) url.openConnection();
urlConn.setDoOutput();
urlConn.setDoInput();
BufferedOutputStream connOut = BufferedOutputStream(urlConn.getOutputStream());
urlConn.connect();
[] buffer = [ BUFFSIZE ];
len = 0;
ServletInputStream in = req.getInputStream();
((len = in.read(buffer,0,buffer.length )) >-1)
connOut.write(buffer,0,len);
connOut.flush();
connOut.close();
in.close();
InputStream content = (InputStream) url.getContent();
BufferedReader servletin = BufferedReader( InputStreamReader(content));
String line = ;
((line = servletin.readLine()) != )
sb.append(line);
sb.append();
servletin.close();
(Exception ex)
CMSAccessException ( +
ex.toString() );
( urlConn != )
urlConn.disconnect();
urlConn = ;
sb.toString();
sendXDBServletRequest(HttpServletResponse res, String servletUrl,
String username, String password)
CMSAccessException
HttpURLConnection urlConn = ;
BufferedInputStream in = ;
BufferedOutputStream bout = ;
urlConn = this.getServerConnection(servletUrl, username, password);
[] buffer = [ BUFFSIZE ];
len = 0;
in = BufferedInputStream( urlConn.getInputStream( ) );
res.setContentType( urlConn.getContentType() );
bout = BufferedOutputStream( res.getOutputStream( ) );
( ( len = in.read(buffer,0,buffer.length) ) > -1 )
bout.write(buffer, 0, len );
(IOException ioEx)
System.out.println( +
ioEx.toString( ) );
(Exception ex)
CMSAccessException ( +
ex.toString() );
( in != ) in.close();
( bout != ) bout.close();
(IOException ioEx)
System.out.println( + ioEx.toString());
( urlConn != )
urlConn.disconnect();
urlConn = ;
AuthImpl Authenticator
String user=;
String pwd = ;
AuthImpl(String user,String pass)
this.user = user;
this.pwd = pass;
PasswordAuthentication getPasswordAuthentication()
PasswordAuthentication(user, pwd.toCharArray());
Trackback:http://anotherbug.blog.chinajavaworld.com/entry/4060/15
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/220284/viewspace-1010912/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/220284/viewspace-1010912/
本文介绍了一种通过基本认证从WebServer获取数据的方法。利用ServletUtils类中的方法,设置HTTP请求头,实现身份验证,并通过不同的方法发送请求,接收响应数据。

被折叠的 条评论
为什么被折叠?



