之前在这个问题上纠结了很久,也换httpClient试过,但是最后居然被细节打败了:
其实原因很简单,在给HttpURLConnection 设置request属性的时候,Android4.0+自动对属性的内容中的空格进行了转义替换‘\s’。
但是,Android2.0+ 没有做这个处理,所以有些网络访问一直Bad!
关键例子代码:
connection.setRequestProperty("Content-Type", ("application/xml; charset=utf-8").replaceAll("\\s", ""));