使用Java中的服务帐户访问网络上的文件

我正在尝试使用Java从网络位置读取文件。问题是访问该网络位置需要特定凭据。

有没有办法在Java中指定这些凭据,然后通过网络访问teh文件。

我试图从我在Weblogic上运行的Web应用程序执行此操作

谢谢,Abhishek

这是一个示例代码。

try { URL url = new URL("https://www.visruthcv.appspot.com"); URLConnection con = url.openConnection(); HttpURLConnection httpUrlConnection = (HttpURLConnection) con; httpUrlConnection.setReadTimeout(10000); httpUrlConnection.setConnectTimeout(15000); httpUrlConnection.setRequestMethod("POST"); httpUrlConnection.setDoInput(true); httpUrlConnection.setDoOutput(true); /* * for request headers */ httpUrlConnection.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); httpUrlConnection.setRequestProperty("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.3"); httpUrlConnection.setRequestProperty("Accept-Encoding", "gzip,deflate,sdch"); httpUrlConnection.setRequestProperty("Accept-Language", "en-US,en;q=0.8"); httpUrlConnection.setRequestProperty("Connection", "keep-alive"); /* * for adding request parameters */ Map params = new HashMap(); params.put("username", "Visruth"); params.put("password", "passwd"); OutputStream os = httpUrlConnection.getOutputStream(); BufferedWriter writer = new BufferedWriter( new OutputStreamWriter(os, "UTF-8")); writer.write(getQuery(params)); writer.flush(); writer.close(); os.close(); httpUrlConnection.connect(); // To write to a file, something like this InputStream is = httpUrlConnection.getInputStream(); FileOutputStream fos = new FileOutputStream("/home/visruth/Desktop/photo2.jpg"); int i = 0; byte[] b = new byte[1024]; while((i = is.read(b)) != -1) { fos.write(b, 0, i); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (ProtocolException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } 

要创建查询字符串:

 //make needful changes for this method if any parameter has multiple values, eg: usernames = "Visruth", usernames = "visruth CV" and etc.. private static String getQuery(Map params) throws UnsupportedEncodingException { StringBuilder result = new StringBuilder(); boolean first = true; for (Entry pair : params.entrySet() ) { if (first) { first = false; } else { result.append("&"); } result.append(URLEncoder.encode(pair.getKey(), "UTF-8")); result.append("="); result.append(URLEncoder.encode(pair.getValue().toString(), "UTF-8")); } return result.toString(); }