《Android坑之java.net.SocketException: Permission denied》

OK,不知道这算不算是一个坑,记录一下吧,一上午都过去了。。。

先上代码,简单的网路请求上传图片,做了精简,只留关键部分。

HttpUrlConnection

一执行到con.getOutputStream()就报错:

刚开始以为代码抄的不好,各种百度,发现没有加权限:

结果加上也不好使,又陆续加了

都不好使。。。后来单开线程请求也不好使(代码已省略)。

然后各种百度找到的都是那几篇文章, 要么是模拟器忘了开sd卡,可是我用的真机啊。。。
然后各种胡思乱想,难道是因为我的手机没root?这倒是跟没有权限的用户执行命令的时候没权限是同样的提示啊。。。难道我的内存卡没有mount?难道我的图片存到了系统空间,我没有权限读?bla bla bla

后来找大神要了段代码,发现跟我写的一样,同样报错。。。
知道后来又搜到了这篇文章:
《Android之EACCES (Permission denied)与Permission denied异常探密》
当中的第二条,permission写的地方不对,检查了我的manifest发现我的permission节写在了application里面(为什么当初我要这么做?我也不知道,为什么别的permission没有报错,我tm怎么知道),然后把所有permission拿出来放到与application平级,终于报的错不一样啦。。。。

java.net_.ProtocalException-Does-not-support-output

另一个坑走起。