记录:Java_POST请求接口实例

/**

* @param URL 访问地址
* @param params 参数内容
* @param Header 设置/添加请求头信息key-value
* @param linktime 连接超时 单位毫秒
* @param readtime 读取超时 单位毫秒
* @return
*/
public  static Map<String,String> mapBoby(String URL,String params,Map<String,String> Header,int linktime,int readtime){
Map<String,String> map=new HashMap<String,String>();
int code=0;
try {
           URL url = new URL(URL);
           HttpURLConnection http=(HttpURLConnection) url.openConnection();
           http.setRequestMethod("POST");// 提交模式
           http.setConnectTimeout(linktime);//连接超时 单位毫秒
           http.setReadTimeout(readtime);//读取超时 单位毫秒
           http.setDoOutput(true);// 允许输出,设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在 
http.setDoInput(true);// 允许输入,设置是否从httpUrlConnection读入,默认情况下是true; 
//http.setRequestProperty("Content-Type", "application/json");//设置请求头里面的数据,以下设置用于解决http请求code415的问题
//遍历添加需要的Header的头信息
for(String key : Header.keySet()){
http.setRequestProperty(key,Header.get(key));//设置请求头里面的数据,
//http.addRequestProperty(key,Header.get(key));//添加Header头信息
}
http.connect();
DataOutputStream out =new DataOutputStream(http.getOutputStream());//向对象输出流写出数据,这些数据将存到内存缓冲区中,字节的方式输出
out.write(params.getBytes());
out.flush(); //刷新对象输出流,将任何字节都写入潜在的流中 
out.close();// 关闭流对象,此时,不能再向对象输出流写入任何数据,先前写入的数据存在于内存缓冲区中   

//往map添加返回信息
code=http.getResponseCode();
map.put("状态码code", String.valueOf(code));
//读取响应状态
if (code==200){
System.out.println("响应状态:"+http.getResponseCode());
// 连接发起请求,处理服务器响应
InputStreamReader inputStream =new InputStreamReader(http.getInputStream());
BufferedReader reader = new BufferedReader(inputStream);
String lines;
StringBuffer sbuffer = new StringBuffer();
// 循环读取流,若不到结尾处 
while ((lines = reader.readLine()) != null) {                
lines = new String(lines.getBytes(), "utf-8");                    
sbuffer.append(lines);

map.put("接口返回信息", sbuffer.toString());
//System.out.println("返回:"+sbuffer.toString());
//System.out.println("返回:"+lines);
reader.close();//关闭流对象
}
//断开链接
http.disconnect();
} catch (Exception e) {
// TODO: handle exception
map.put("状态码code", String.valueOf(code));
System.out.println("发送 POST 请求出现异常!");
e.printStackTrace();


}
return map;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章