文档章节

HttpURLConnection Cannot write output after reading input.

之渊
 之渊
发布于 2017/03/01 09:37
字数 490
阅读 39
收藏 0
点赞 0
评论 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
博文 505
码字总数 149495
作品 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
android-类HttpURLConnection的使用

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

pointerException
2015/08/02
0
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
URLConnection的连接、超时、关闭用法

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

玄空
2013/02/17
0
0
Spring Batch_ItemReaders and ItemWriters

Spring Batch_ItemReaders and ItemWriters All batch processing can be described in its most simple form as reading in large amounts of data, performing some type of calculation o......

秋风醉了
2014/11/03
0
0
JDK中的URLConnection参数详解

针对JDK中的URLConnection连接Servlet的问题,网上有虽然有所涉及,但是只是说明了某一个或几个问题,是以FAQ的方式来解决的,而且比较零散,现在对这个类的使用就本人在项目中的使用经验做如下...

gaofeng36599
2017/07/14
0
0
vC编译问题!

// dd.cpp : Defines the entry point for the console application. // #include "StdAfx.h" #include #include "stdlib.h" #include #include "windows.h" /#ifdef NEEDSIOH/ #include #in......

xixiaifl
2011/04/20
747
6
HttpURLConnection用法详解

针对JDK中的URLConnection连接Servlet的问题,网上有虽然有所涉及,但是只是说明了某一个或几个问题,是以FAQ的方式来解决的,而且比较零散,现在对这个类的使用就本人在项目中的使用经验做如下...

一别经年
2014/01/20
0
0
URLConnection 详细说明

原文链接地址: http://www.blogjava.net/supercrsky/articles/247449.html 针对JDK中的URLConnection连接Servlet的问题,网上有虽然有所涉及,但是只是说明了某一个或几个问题,是以FAQ的方式...

菠萝啊哈哈
2014/06/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

AngularJs $resource 高大上的数据交互

$resource 创建一个resource对象的工厂函数,可以让你安全的和RESFUL服务端进行数据交互。 需要注入 ngResource 模块。angular-resource[.min].js 默认情况下,末尾斜杠(可以引起后端服务器...

孟飞阳
9分钟前
0
0
打印斐波那契数

package com.jerry.ch04;public class PrintFibonacci {public static void main(String[] args) {for (int i=0; i<10; i++) {System.out.print(fib(i) + " ");}......

JerryNing
14分钟前
0
0
shell编程

一、shell脚本介绍

人在艹木中
15分钟前
0
0
istio 0.8 遥测 案例

==============遥测===================================== 演示如何从网格中收集遥测信息。 分布式跟踪。如何配置代理以向Zipkin或Jaeger发送跟踪请求 收集度量标准和日志。此任务说明如何配...

xiaomin0322
17分钟前
0
0
ND4J求多元线性回归以及GPU和CPU计算性能对比

上一篇博客《梯度下降法求多元线性回归及Java实现》简单了介绍了梯度下降法,并用Java实现了一个梯度下降法求回归的例子。本篇博客,尝试用dl4j的张量运算库nd4j来实现梯度下降法求多元线性回...

冷血狂魔
18分钟前
0
0
springboot常用注解

@SpringBootApplication: 包含@Configuration、@EnableAutoConfiguration、@ComponentScan 通常用在主类上。 @Service: 用于标注业务层组件。 @RestController: 用于标注控制层组件(如strut...

GoldenVein
24分钟前
1
0
如何进行大数据的入门级学习?

不知道你是计算机专业应届生还是已经从业者。总之,有java基础的学生学习大数据会轻松很多,零基础的小白都需要从java和linux学起。 如果你是一个学习能力特别强,而且自律性也很强的人的话可...

董黎明
38分钟前
0
0
使用Parcelable传递复杂参数

最近做AIDL传递对象,对象必须实现Parcelable的方法才可以被传递。 @Override    public int describeContents() {//这个 默认返回0就行了。        return 0;    }    ...

火云
39分钟前
0
0
十大Intellij IDEA快捷键

Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论。每个人都有自己的最爱,想排出个理想的榜单还真是困难。以前也整理过Intellij的快捷键,这次就按照我日常开发...

HJCui
49分钟前
0
0
word 使用mathtype 编写 数学公式

下载安装,这个链接命名。。。。 http://www.mathtype.cn/xiazai.html 安装之后会多出一个选项 使用内联方式插入图表 编写公式的界面 设置支持latex 语法 输入公式回车就可以看到结果...

阿豪boy
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部