我在用OkHttp在AndroiStudio中写一个登录请求时,不通过,就报错
下面是报错信息,也不是红色字体的
W/System.err: com.alibaba.fastjson.JSONException: syntax error, pos 1, line 1, column 2CLEARTEXT communication to www.hnsaturn.com not permitted by network security policy
下面是控制台指引的代码行
private void showUI(final String message) {
//开启新线程
runOnUiThread(new Runnable() { //开启UI线程,更新组件信息
@Override
public void run() {
try {
JSONObject jsonObject=JSONObject.parseObject(message);
//toJavaObject 是转换为java对象
ResponseEntity responseEntity = JSON.toJavaObject(jsonObject, ResponseEntity.class);
//显示历史记录 用 append 否则用setText
textView.append(responseEntity.getSmsHead()+"\n"+responseEntity.getSmsBody()+"\n");
} catch (Exception e) {
e.printStackTrace();
textView.setText("请求数据失败:"+e.getMessage()+"\n");
}
}
});
确定一下message是JSONObject 还是JSONARRAY 再进行解析
应该是message的问题,断掉调试一下,看看获取message的具体情况
Android P以后限制了非加密的流量请求
解决方案:
1.在res目录下创建xml文件夹,新建 一个文件 (随便命名)
2.在文件中输入以下内容:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
在AndroidManifest中的application里添加你新建的 xml文件
<application
****
android:networkSecurityConfig="@xml/你创建的文件名"
****
>