文档章节

HttpURLConnection Cannot write output after reading input.

之渊
 之渊
发布于 2017/03/01 09:37
字数 490
阅读 67
收藏 0

是因为 , 我在 用了 int 管道之后, 又 用了 out 管道, 所以报错了, 没测试。。。 又坑了。

public static String sendPostRequest(String path,String param) throws IOException {
		String sendUrlString=path+param;
		
		URL url = new URL(sendUrlString);
		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
		//设置post方式请求
		conn.setRequestMethod("POST");
		//将超时控制在 8S 内,因为没有 引入 多线程发送。为了防止RTX 那边有问题,延迟太久了,对用户体验不太好。
		// 一般 反应是很快的,所以不考虑 使用线程池了。没必要搞复杂。
		conn.setReadTimeout(3000); // 读取  超时 3秒 。
		conn.setConnectTimeout(5000);//连接超时 5秒 。
		
		//conn.setRequestProperty("Accept-Charset", "utf-8");
		//conn.setRequestProperty("contentType", "utf-8");
		conn.setRequestProperty("Content-type", "application/x-java-serialized-object");
		
		
		//设置传入参数,post 
		conn.setDoOutput(true); 
		conn.connect(); // 主动建立间接 。,默认也是会建立的。
		
		//传入参数
		//conn.getOutputStream().write(param.toString().getBytes());
		// 解决中文乱码, 在 Linux 下没有乱码,本地有 ,估计 Linux 已经 帮我们转码了一次了。
		// 而且 Linux 下 的默认编码并没有 和 本地的一致,比如tomcat的啊, 系统的啊,没有 该为 默认中文的等。
		// 既然这样 在 Linux 下没有 乱码,可以不用管,如果以后  可以 去 修改 服务器里面的 编码。
		//BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
		
		// 解决中文乱码,在 Linux 下有乱码,本地没有
		//BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),"GBK"));
		
		// out 管道 必须放在 int 管道之前 使用的。这个是 HRRt 规定的
		//可以不主动关闭, 默认会自动关闭的。特别是 随着 int 管道关闭同时关闭的。
		conn.getOutputStream().flush(); // 这个最好有
		 conn.getOutputStream().close();  // 关闭代码可以不用。
		
		InputStreamReader isreader = new InputStreamReader(conn.getInputStream());
		BufferedReader reader = 
				new BufferedReader(isreader);
		
		String readingString= "";
		// 读取完所有内容
		String readl=null;
		while (( readl=reader.readLine() )!=null) {
			
			readingString=readingString+readl;
			
			readl=null;
		}
		
		// 必须放在 int 管道之前 使用的。, 不要放在 这里,会报错:  Cannot write output after reading input.
		//conn.getOutputStream().close(); 
		
		// 养成 关闭 管道的习惯 。
		conn.getInputStream().close();
		isreader.close();
		reader.close();
		
		return readingString;
		
	}

参考地址: http://www.blogjava.net/supercrsky/articles/247449.html

参考地址: http://blog.csdn.net/u010278162/article/details/51054664

© 著作权归作者所有

共有 人打赏支持
之渊
粉丝 11
博文 523
码字总数 155078
作品 0
佛山
程序员
私信 提问
java.net.ProtocolException: Cannot write output after reading input.

public String submitPost(HashMap map, String surl) throws Exception { StringBuffer responseMessage = new StringBuffer(); StringBuffer params = new StringBuffer(); Iterator> it =......

习惯步行
2016/11/11
238
0
linux环境下执行HttpURLConnection发送图片流失败

大侠们,您们好,小弟有个问题问下: 我现在使用HttpURLConnection进行发送图片流到某服务器上,在window的环境下是通过的,但是部署到linux中,就无法通过,由于是破解的某网站的服务,所有...

iljsan
2012/12/21
1K
0
J2SE Socket SSL/TLS C/S模式编程

参考: http://www.iteye.com/topic/1114800 Java-JSSE-SSL/TLS编程代码实例-双向认证 Java-JSSE-SSL/TLS编程代码实例-单向认证 Java SSL密钥交换过程解析 一. SSLSocket是什么? JDK文档指出...

IamOkay
2016/05/14
219
0
android-类HttpURLConnection的使用

获取HttpURLConnection对象 URL url = new URL(url); URLConnection rulConnection = url.openConnection(); // 此处的urlConnection对象实际上是根据URL的 // 请求协议(此处是http)生成的U......

pointerException
2015/08/02
0
0
URLConnection的连接、超时、关闭用法

Java中可以使用HttpURLConnection来请求WEB资源。 1、 URL请求的类别 分为二类,GET与POST请求。二者的区别在于: a:) get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet...

玄空
2013/02/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day148-2018-11-15-英语流利阅读-待学习

赴美生子恐结束?特朗普中期选举憋大招 毛西 2018-11-15 1.今日导读 在 2013 年,一部《北京遇上西雅图》让赴美生子这个曾经神秘的话题吸引了很多关注。每年,数以万计的父母远赴美国,并在那...

飞鱼说编程
25分钟前
2
0
OSChina 周四乱弹 —— 每次我穿短裙的时候

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @瘟神灬念 :分享DM DOKURO的单曲《Reality Check Through The Skull》: 差点以为手机卡了 《Reality Check Through The Skull》- DM DOKURO...

小小编辑
35分钟前
100
4
Windows 10 设置 Java 环境变量

首先你需要在我的电脑中打开,找到环境变量属性。 找到环境变量属性 找到环境变量属性后单击将会看到下面的设置界面。 在这个界面中设置高级系统设置。 环境变量 在弹出的界面中选择设置环境...

honeymose
今天
3
0
用any-loader封装jQuery的XHR —— 随便写着玩系列

哎,都说没人用JQuery啦,叫你别写这个。 其实我也是好高骛远使用过npm上某个和某个很出名的XHR库,嗯,认识我的人都知道我喜欢喷JQ,以前天天喷,见面第一句,你还用JQ,赶紧丢了吧。但我也...

曾建凯
今天
8
0
SLF4J的正确打开方式

最近公司好几波人过来问日志打印相关的异常,大多是jar包冲突引起的,发现大部分同事不太清楚各种日志框架以及相关jar包之间的关系,所以今天详细的讲解下常见jar包之间的关系,以及如何正确...

lexus90
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部