http访问 api接口,http的头需要加入id 和密钥进行验证,发送json格式的数据给应用程序,求大神指教。
有没有实例程序可供参考的,谢谢各位了
jsp服务器端
变量 = request.getHeader("http头字段");
客户端
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("字段", 值);
httpclient.setheader(headers);
java可以直接用URLConnection调用api接口的,它有设置请求头属性的方法。
发送请求的内容作为body参数传入。
参考代码:
/**
* 以http方式发送请求,并将请求响应内容以String格式返回
* @param path 请求路径
* @param method 请求方法
* @param body 请求数据
* @return 返回响应的字符串
*/
public static String httpRequestToString(String path, String method, String body) {
String response = null;
HttpURLConnection conn = null;
InputStream inputStream = null;
InputStreamReader inputStreamReader = null;
BufferedReader bufferedReader = null;
try {
URL url = new URL(path);
conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setRequestMethod(method);
if (null != body) {
OutputStream outputStream = conn.getOutputStream();
outputStream.write(body.getBytes("UTF-8"));
outputStream.close();
}
inputStream = conn.getInputStream();
inputStreamReader = new InputStreamReader(
inputStream, "UTF-8");
bufferedReader = new BufferedReader(
inputStreamReader);
String str = null;
StringBuffer buffer = new StringBuffer();
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
}
response = buffer.toString();
} catch (Exception e) {
logger.error(e);
}finally{
if(conn!=null){
conn.disconnect();
}
try {
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
} catch (IOException execption) {
logger.error(execption);
}
}
return response;
}
httpclient,例子自己百度下吧!
apache 的 httpclient
android 的话自带这个,还有okHttp等jar包封装了很多android的实用方法。