connection.connect有问题
I/Process: Sending signal. PID: 14737 SIG: 9
Application terminated.
相关代码如下 :private void requestDataByGet() {
try {
//新建URL对象
URL url = new URL(FOODMENUURL);
//获取url的连接
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
//设置连接属性:超时30s自动不再访问网址
connection.setConnectTimeout(30 * 1000);
//设置连接属性:请求访问
connection.setRequestMethod("GET");
//设置获取数据格式类型jason
//设置获取字符集类型UTF-8
connection.setRequestProperty("Content-Type", "application/jason");
connection.setRequestProperty("Charset", "UTF-8");
connection.setRequestProperty("Accept-Charset", "UTF-8");
connection.connect();//发起连接
int responseCode = connection.getResponseCode();//获取连接码
String responseMessage = connection.getResponseMessage();//获取连接信息
//访问URL成功代码 HttpURLConnection.HTTP_OK=200
if (responseCode == HttpURLConnection.HTTP_OK)//如果访问成功
{
//获取连接的输入流
InputStream inputStream = connection.getInputStream();
//把输入流转换成String字符串
result = streamToString(inputStream);
//runOnUiThread帮助转到当前操作线程,也就是主线程
runOnUiThread(new Runnable() {
@Override
public void run() {
result = decode(result);//把结果转成UTF-8格式
handleJSONData(result);//把获得的结果解析成Jason数据
}
});
} else//获取网络数据不成功
{
//TODO:error fail
Log.e(TAG, "run:error code" + responseCode + ",message:" + responseMessage);
}
} catch (MalformedURLException e)//捕获异常:不可返的URL地址
{
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
其中126行指的就是:connection.connect();//发起连接
Manifest中已经添加网络访问请求,调试手机也能正常上网
正在回答
你的网络连接处理代码是没有问题的,你检查一下FOODMENUURL地址是否能正常访问以及获取数据后的数据处理是否有问题,可以断点跟踪一下,如果实在找不到也可以把相关代码都贴出来或者提交作业都可以,老师会结合你完整代码帮你找到问题
- 参与学习 人
- 提交作业 307 份
- 解答问题 1613 个
本专题是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理。介绍了Android内外部文件存储、轻量级数据库SQLite的使用。利用屏幕适配、状态保持、百度地图解决实际问题。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星