java中A项目调用B项目的功能,怎么用HTTP实现?现在知道B项目这一功能的请求路径和所需参数,求具体代码
B项目编写一个jsp,在里面调用功能,可以用getParameter()获得参数
B项目部署到web服务器上。
A项目用httpClient请求这个jsp的地址,并且传入参数。
a项目中使用apache的httpclient创建一个http请求不就可以了
//url 请求地址
//paramName 参数名
//param 值
//下面会自己拼接参数,例如xxx.do?method=xx&name=xx
public static String sendGet(String url,String paramName,String param){
String result="";//访问返回结果
BufferedReader read=null;//读取访问结果
try {
//创建url
URL realurl=new URL(url+"?"+ paramName + "="+param);
//打开连接
URLConnection connection=realurl.openConnection();
// 设置通用的请求属性
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
//建立连接
connection.connect();
//获取所有响应头字段
Map<String, List<String>> map = connection.getHeaderFields();
// 遍历所有的响应头字段,获取到cookies等
for (String key : map.keySet()) {
System.out.println(key + "--->" + map.get(key));
}
//定义 BufferedReader输入流来读取URL的响应
read = new BufferedReader(new InputStreamReader(
connection.getInputStream(),"UTF-8"));
String line;//循环读取
while ((line = read.readLine()) != null) {
result += line;
}
} catch (IOException e) {
e.printStackTrace();
}finally{
if(read!=null){//关闭流
try {
read.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// System.out.println(url+"?"+ paramName + "="+param);
return result;
}
httpclient直接请求就可以