情况描述:在项目中,经常需要在代码中直接访问某个url,当目标url有设置BASIC Authorization 时,代码需要加上用户名和密码方可进行访问,详细如下:
public static String post(String addr, String params) {
String result = "";
try {
URL url = new URL(addr);
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
String auth="gallop:123456";
String code = new sun.misc.BASE64Encoder().encode(auth.getBytes());
connection.setRequestProperty("Authorization", "Basic " + code);
PrintWriter out = new PrintWriter(connection.getOutputStream());
out.write(params);
out.close();
BufferedReader in;
try {
in = new BufferedReader(new InputStreamReader(connection
.getInputStream()));
} catch (FileNotFoundException exception) {
java.io.InputStream err = ((HttpURLConnection) connection)
.getErrorStream();
if (err == null)
throw exception;
in = new BufferedReader(new InputStreamReader(err));
}
StringBuffer response = new StringBuffer();
String line;
while ((line = in.readLine()) != null)
response.append(line + "\n");
in.close();
result = response.toString();
} catch (MalformedURLException e) {
System.err.println(e.toString());
} catch (IOException e) {
System.err.println(e.toString());
}
return result;
}