post方式提交序列化对象
来源:互联网 发布:ftp客户端软件 编辑:程序博客网 时间:2024/05/29 19:01
/** * 采取post方式提交序列化后的object对象 </br> * 另请参考:java.io.ObjectInputStream/ObjectOutputStream * @param requestUrl 请求地址 * @param connTimeoutMills 设置连接主机超时,单位:毫秒 * @param readTimeoutMills 设置从主机读取数据超时,单位:毫秒 * @param serializedObject 序列化后的object对象 * * @return remoteHttp返回的结果 */ public static String httpPostSerialObject(String requestUrl, int connTimeoutMills, int readTimeoutMills, Object serializedObject) throws Exception { HttpURLConnection httpUrlConn = null; InputStream inputStream = null; InputStreamReader inputStreamReader = null; BufferedReader bufferedReader = null; ObjectOutputStream oos = null; StringBuffer buffer = new StringBuffer(); try { URL url = new URL(requestUrl); httpUrlConn = (HttpURLConnection)url.openConnection(); // 设置content_type=SERIALIZED_OBJECT // 如果不设此项,在传送序列化对象时,当WEB服务默认的不是这种类型时可能抛java.io.EOFException httpUrlConn.setRequestProperty("Content-Type","application/x-java-serialized-object"); httpUrlConn.setConnectTimeout(connTimeoutMills); httpUrlConn.setReadTimeout(readTimeoutMills); // 设置是否向httpUrlConn输出,因为是post请求,参数要放在http正文内,因此需要设为true, 默认情况下是false httpUrlConn.setDoOutput(true); // 设置是否从httpUrlConn读入,默认情况下是true httpUrlConn.setDoInput(true); // 不使用缓存 httpUrlConn.setUseCaches(false); // 设置请求方式,默认是GET httpUrlConn.setRequestMethod("POST"); httpUrlConn.connect(); if (serializedObject != null) { // 此处getOutputStream会隐含的进行connect,即:如同调用上面的connect()方法, // 所以在开发中不调用上述的connect()也可以,不过建议最好显式调用 // write object(impl Serializable) using ObjectOutputStream oos = new ObjectOutputStream(httpUrlConn.getOutputStream()); oos.writeObject(serializedObject); oos.flush(); // outputStream不是一个网络流,充其量是个字符串流,往里面写入的东西不会立即发送到网络, // 而是存在于内存缓冲区中,待outputStream流关闭时,根据输入的内容生成http正文。所以这里的close是必须的 oos.close(); } // 将返回的输入流转换成字符串 // 无论是post还是get,http请求实际上直到HttpURLConnection的getInputStream()这个函数里面才正式发送出去 inputStream = httpUrlConn.getInputStream();//注意,实际发送请求的代码段就在这里 inputStreamReader = new InputStreamReader(inputStream, "UTF-8"); bufferedReader = new BufferedReader(inputStreamReader); String str = null; while ((str = bufferedReader.readLine()) != null) { buffer.append(str); } } catch (Exception e) { throw e; } finally { try { IOUtils.close(bufferedReader); IOUtils.close(inputStreamReader); IOUtils.close(inputStream); IOUtils.close(oos); if (httpUrlConn != null) { httpUrlConn.disconnect(); } } catch (Exception e) { } } return buffer.toString(); }
阅读全文
0 0
- post方式提交序列化对象
- window.open() POST 方式提交json数据,以及后台的json序列化为对象
- POST 提交数据方式
- POST提交数据方式
- 提交方式post
- 原始ajax通过xmlHttpRequest对象的send()方法提交数据--Get方式和Post方式
- php post方式提交数据
- C#实现POST提交方式
- Jquery用Post方式提交
- C#实现POST提交方式
- javascript POST方式提交表单
- C#实现POST提交方式
- 使用Post方式提交数据
- C#实现POST提交方式
- C#实现POST提交方式
- JavaScript Post方式提交表单
- C#实现POST提交方式
- HTTP 模拟POST方式提交
- [Windows驱动开发](一)序言
- Python--小笔记
- fanil修饰属性
- 《lua程序设计》读书笔记 第六章:深入函数
- [Windows驱动开发](二)基础知识——数据结构
- post方式提交序列化对象
- nodejs事件循环学习笔记
- 常用api网址
- yarn的cpu资源隔离
- [Windows驱动开发](三)基础知识——驱动例程
- Nan空值
- 品质化时代 CP如何把控手游产品质量关
- 算法谜题97 topswops游戏
- 初识jQuery之--样式表-显示-隐藏