connection.connect有问题

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中已经添加网络访问请求,调试手机也能正常上网

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

你的网络连接处理代码是没有问题的,你检查一下FOODMENUURL地址是否能正常访问以及获取数据后的数据处理是否有问题,可以断点跟踪一下,如果实在找不到也可以把相关代码都贴出来或者提交作业都可以,老师会结合你完整代码帮你找到问题

  • 慕运维0750787 提问者 #1
    FOODMENUURL是可以正常访问的,提示说明是connect有问题,没有到数据处理问题,数据处理是在后面部分。
    2019-01-18 20:03:03
  • 慕运维0750787 提问者 #2
    at com.example.administrator.gridviewtuangoudemo.MainActivity.requestDataByGet(MainActivity.java:130),错误行就是在connection.connect
    2019-01-19 09:34:06
  • 慕运维0750787 提问者 #3
    断点在connection.setRequestMethod("GET"); 调试数据:this = {MainActivity@830047525032} url = {URL@830048396776} "http://www.imooc.com/api/shopping?type=11" connection = {HttpURLConnectionImpl@830048558736} "com.android.okhttp.internal.http.HttpURLConnectionImpl:http://www.imooc.com/api/shopping?type=11" client = {OkHttpClient@830048400504} selectedProxy = null httpEngine = null httpEngineFailure = null rawRequestHeaders = {RawHeaders@830048559264} redirectionCount = 0 fixedContentLength = -1 responseMessage = null method = "GET" fixedContentLengthLong = -1 instanceFollowRedirects = true HttpURLConnection.fixedContentLength = -1 responseCode = -1 chunkLength = -1 url = {URL@830048396776} "http://www.imooc.com/api/shopping?type=11" defaultHandler = {URLConnection$DefaultContentHandler@830048558872} contentType = null connected = false lastModified = -1 ifModifiedSince = 0 doOutput = false doInput = true connectTimeout = 0 readTimeout = 0 allowUserInteraction = false useCaches = true
    2019-01-19 09:37:32
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Android网络操作与数据存储2018版
  • 参与学习           人
  • 提交作业       307    份
  • 解答问题       1613    个

本专题是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理。介绍了Android内外部文件存储、轻量级数据库SQLite的使用。利用屏幕适配、状态保持、百度地图解决实际问题。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师