HttpURLConnection测试程序崩溃

今天照《第一行代码》第10章敲出来的HttpURLConnection测试程序运行之后一直闪退,求大神指点,小白拜谢!

错误日志如下:

图片说明
图片说明

代码如下:

 package com.example.networktest;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import android.app.Activity;
import android.app.ActionBar;
import android.app.AlertDialog.Builder;
import android.app.Fragment;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.os.Build;

public class MainActivity extends Activity implements OnClickListener {
    public static final int SHOW_RESPONSE = 0;
    private TextView textView;
    private Button button;
    private Handler handler = new Handler() {
        public void handlerMessage(Message msg) {
            switch (msg.what) {
            case SHOW_RESPONSE:
                String response = (String) msg.obj;
                // 更新UI操作
                textView.setText(response);
                break;

            default:
                break;
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_main);
        textView = (TextView) findViewById(R.id.sendRequest);
        button = (Button) findViewById(R.id.responseText);
        button.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        if (v.getId() == R.id.sendRequest) {
            sendRequsetWithHttpURLConnection();
        }
    }

    private void sendRequsetWithHttpURLConnection() {
        // 开启线程来发起网络请求
        new Thread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                HttpURLConnection connection = null;
                try {
                    URL url = new URL("http://www.baidu.com");
                    connection = (HttpURLConnection) url.openConnection();
                    connection.setRequestMethod("GET");
                    connection.setConnectTimeout(8000);
                    connection.setReadTimeout(8000);
                    InputStream in = connection.getInputStream();
                    // 对获取到的输入流进行解析
                    BufferedReader reader = new BufferedReader(
                            new InputStreamReader(in));
                    StringBuilder response = new StringBuilder();
                    String line ;
                    while ((line=reader.readLine()) != null) {
                        response.append(line);
                    }
                    // 发送返回结果
                    Message message = new Message();
                    message.what = SHOW_RESPONSE;
                    message.obj = response.toString();
                    handler.sendMessage(message);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } finally {
                    if (connection != null) {
                        connection.disconnect();
                    }
                }
            }
        }).start();
    }

}

0

2个回答

看你的日志你好像是把textview设置到button中了,就是你findviewbyid获取的是textview但是赋值给button了,

0
liyuanjinglyj
Git_Android 回复Aind_0: 你的网络任务获取到数据呢吗?有不有日志提示?
3 年多之前 回复
Aind_0
黑线哥哥 可是为什么点击button仍然没有响应呢?
3 年多之前 回复
Aind_0
黑线哥哥 果然群众的眼睛才是雪亮的,我把逻辑梳理了一遍又一遍,就是没往这个地方想啊~多谢前辈了!
3 年多之前 回复

ComponetInfo Activity 的定义在哪里?
使用 HTTP 功能,需要 网络相关的权限,不知道你有没有在 Mainfest.xml 中设置?

1
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
使用HttpURLConnection下载图片
使用HttpURLConnection下载图片
HttpURLConnection获取json数据解析
使用HttpURLConnection请求链接,并解析View上的json数据字符串,并且使用Handler;使用JsonObject来解析数据
HttpURLConnection OKHttp实现请求
分别使用HttpURLConnection OKHttp实现请求
Java的HttpURLConnection的封装类 v3.0
用于对基于HTTP的服务进行抓取 HttpClient 现在是HttpComponents 把问题搞复杂了 其实Java内置的HttpURLConnection很好的 内含文档 使用方法见http://blog.csdn.net/jdgdf566/article/details/17039693
使用HttpURLConnection或HttpClient方式传json值到spring中
使用HttpURLConnection或HttpClient方式传json值到spring中
基于https的httpconnection请求
java 基于https请求httpconnection, 在代码中加入tls, tls1.2等..
Android网络请求框架基于HttpUrlConnection的封装
这是我的博客Android框架 之网络请求框架系列文章第二弹的HttpUrilConnection封装的源码
Httpurlconnection
代码包含了httpurlconnection基本操作,一些正常的操作。
HttpURLConnection读取本地目录上传远程服务器
通过HttpURLConnection把本地目录上的资源打包远程到另一台服务器上,有通过过滤器启动Timer,有手工上传的。
通过HttpURLConnection获取SESSIONID
package test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.List; import java.util.Map; public class HttpTest { private HttpURLConnection hc = null; private static final String oneUrlString = "http://xxx.jsp"; private static final String twoUrlString = "http://xxx.action"; public String getSessionId() { String sessionId = ""; try { URL url = new URL(oneUrlString); hc = (HttpURLConnection) url.openConnection();//默认的用GET提交 hc.setDoOutput(true); hc.connect(); Map map = hc.getHeaderFields(); //得到Cookie的所有内容,包括SESSIONID,在进行下次提交的时候 直接把这个Cookie的值设到头里头就行了 //淡然只得到SESSIONID也很简单的 ,但是有时候Set-Cookie的值有几个的 List<String> list = (List) map.get("Set-Cookie"); if(list.size() == 0||list == null) { return null; } StringBuilder builder = new StringBuilder(); for(String str : list) { sessionId = builder.append(str).toString(); } hc.disconnect(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return sessionId; } public String getResponseContext(String parameters) { String responseContext = ""; try { URL url = new URL(twoUrlString); hc = (HttpURLConnection) url.openConnection();//使用POST提交 hc.addRequestProperty("Cookie", getSessionId()); hc.setDoOutput(true); hc.connect(); OutputStream out = hc.getOutputStream(); //参数是a=""&b=""这样拼接的一个串 out.flush(); out.close(); out.write(parameters.getBytes(),0,parameters.getBytes().length); InputStream in = hc.getInputStream(); InputStreamReader reader = new InputStreamReader(in,"gb2312"); BufferedReader read = new BufferedReader(reader); StringBuilder builder = new StringBuilder(); String str = ""; while((str = read.readLine()) != null) { builder = builder.append(str); } read.close(); reader.close(); in.close(); hc.disconnect(); responseContext = builder.toString(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return responseContext; } }
使用HttpURLConnection进行网络编程
安卓中的HttpURLConnection进行网络编程,简单的实现了文本和图片解析
c++开发,程序崩溃检查工具
运行程序代参数,drmingw.exe -a -i,当程序崩溃时会自动弹出崩溃信息,和崩溃位置,非常好用。
httpurlconnection 获取服务器数据并解析
httpurlconnection 获取服务器数据并解析
HttpURLConnection调用.net WebService
使用HttpURLConnection直接调用.net的WebService
HttpURLConnection获取webService上的值
JAVA代码里,HttpURLConnection获取webservice的值,包含W3C解析XML节点方法
网络请求----HttpURLConnection的get,post和图片加载
HttpURLConnection的get,post和图片加载
httpurlconnection从网络上获取一张图片并显示
通过httpurlconnection从网络上获取一张图片,图片没有压缩,不能太大
Android移动开发-使用HttpURLConnection实现多线程的下载
实例Demo程序来示范使用HttpURLConnection实现多线程下载。 使用多线程下载文件可以更快完成文件的下载,因为客户端启动多条线程进行下载就意味着服务器也需要为该客户端提供响应的服务。假设服务器同时最多服务100个用户,在服务器中一条线程对应一个用户,100条线程在计算机内并发执行,也就是有CPU划分时间片轮流执行,如果A应用使用了99条线程下载文件,那么相当于占用了99个用户的资源,自然就拥有了较快的下载速度。
Android HttpUrlConnection json使用方法
Android HttpUrlConnection使用方法 post and get json.
彻底解决android用HttpUrlConnection与web服务器之间session保持问题
彻底解决android用HttpUrlConnection与web服务器之间session保持问题
HttpURLConnection 实现网站登录,获取
网上找的一个东西.用于模拟登录网站,获取登录后信息. 分享下,以后用得着.测试可用.
java HttpURLConnection工具
java HttpURLConnection示例 HttpURLConnection工具
使用HttpUrlConnection实现上传文件 服务器端代码
使用HttpUrlConnection实现上传文件服务器端代码,引用commons-fileupload-1.2.1.jar、commons-io-1.4.jar
java实现多次HttpURLConnection共享session
java实现多次HttpURLConnection共享session,发送两次请求共享同一个session,这样做爬虫的时候就可以爬网站登录后能看到的内容了
vc 程序崩溃的捕捉 vc 程序崩溃的捕捉
vc 程序崩溃的捕捉 vc 程序崩溃的捕捉 vc 程序崩溃的捕捉 vc 程序崩溃的捕捉
android HttpURLConnection上传图片demo
这个demo是Android使用HttpURLConnection上传图片到服务器
HttpURLConnection文件下载\httpURLConnection文件下载
HttpURLConnection文件下载\httpURLConnection文件下载
Windows程序崩溃后通过代码产生完整dump
当windows程序崩溃,通过此此代码可以产生完整的dump文件,并可控制产生文件数量
AsyncTask结合HttpUrlConnection的例子
自己写了一个基于httpurlconnection和Asynctask的例子
HttpUrlConnection下载文件
HttpUrlConnection下载文件
android之通过HttpURLConnection类查看网络图片、源码例子
android之通过HttpURLConnection类查看网络图片、网络源码的例子
Httpurlconnection请求网络数据,使用Android Studio.zip
Httpurlconnection请求网络数据(文本&图片),使用Android Studio
http各种jar包
http的各种开发jar包
Android 简单使用 HttpURLConnection
在 Android 中对 HttpURLConnection 的简单使用,仅供参考。
CustomHttpURLConnectionImpl
实现HttpURLConnection,创建自己想要的HttpURLConnection连接
Android使用HttpClient和HttpsUrlConnection两种方式访问https网站
使用httpclient和httpsurlconnection两种方法访问https网址,同时分为验证证书和不验证证书两种方法
Socket的各种使用测试
主要是测试Socket的各种应用,包括客户端和服务端的简单通信;多线程下载文件;HttpUrlConnection的简单测试;UDP的简单通信
windows自动重启程序
用这个工具,可以监控WINDOWS程序状态,如果崩溃了可以自动重启,功能较多。有两种模式:一、进程被关闭了;二、进程无响应了; 并且可以设定多长时间自动重启。 如果是C#开发注意路径:System.Windows.Forms.Application.StartupPath + "\\Config.ini"; 这种写法路径不会出错
VC程序异常崩溃源代码位置查找助手
使用方法: 在程序初始化时LoadLibrary( "exceptlog.dll" ); 程序打包时把exceptlog.dll和系统的dbghelp.dll放在一起。 当程序异常时不会弹错误对话框,会在当前目录下生成"crack"字样的日志文件,打开后就可以追查到异常具体位置了!
HttpURLConnection
HttpURLConnection的demo,里面有网络请求get post 上传文件,下载文件,介绍HttpURLConnection这个类整体流程是怎样使用的,方便初学者学习
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 区块链测试 物联网测试技术培训