ndroid-关于urlconnection的问题

问题描述

关于urlconnection的问题

求助!我写了一个程序去读取IIS服务器上一个txt里的内容 代码如下:
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {
private TextView myTextView;
public String copy;
private Thread th1;
private String str;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myTextView=(TextView)findViewById(R.id.T1);
th1=new Thread(new mythr());
th1.start();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

class mythr implements Runnable
{
    public void run() {
        while (true) {
            try {
                try {
                    Thread.sleep(5000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                URL url;
                url = new URL("http://218.199.151.96/data.txt");
                URLConnection hpCon = url.openConnection();//用地址的url创建连接
                int len = hpCon.getContentLength();
                hpCon.connect();
                InputStream input = hpCon.getInputStream();
                str = inputStream2String(input);
                Message msgg = new Message();
                msgg.what = 100;
                mHandler.sendMessage(msgg);//输出页面的文本内容,为html代码;
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}

public static String inputStream2String(InputStream is) throws IOException    //输入流转换为string
{
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    int i = -1;
    while ((i = is.read()) != -1)
    {
        baos.write(i);
    }
    return baos.toString();
}

private Handler mHandler = new Handler() {
    public void handleMessage(Message msg) {
        switch (msg.what){
            case 100:
                myTextView.setText(str);
                break;
        }
    }
};

}
这都能够运行 可是把这段代码中的线程以及方法插入到另一个activity里测试为什么始终是没有反应?
另一个activity如下:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class first extends Activity {
Intent intent = new Intent();
private TextView myTextView;
public String copy;
private Thread th1;
private String str;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
intent.setClass(first.this, com.kince.waveview.MainActivity.class);
myTextView=(TextView)findViewById(R.id.T1);
th1=new Thread(new mythr());
th1.start();
Button b1 = (Button)findViewById(R.id.button1);

    b1.setOnClickListener(new Button.OnClickListener()
    {
        public void onClick(View v)
        {
            startActivity(intent);
        }
    });
}

class mythr implements Runnable
{
    public void run() {
        while (true) {
            try {

                URL url;
                url = new URL("http://218.199.151.96/data.txt");
                URLConnection hpCon = url.openConnection();//用地址的url创建连接
                int len = hpCon.getContentLength();
                hpCon.connect();
                System.out.println("Content-leng:" + len);
                System.out.println("--------------content-------------");
                InputStream input = hpCon.getInputStream();
                str = inputStream2String(input);
                System.out.println(str);
                Message msgg = new Message();
                msgg.what = 100;
                mHandler.sendMessage(msgg);//输出页面的文本内容,为html代码;
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

public static String inputStream2String(InputStream is) throws IOException    //输入流转换为string
{
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    int i = -1;
    while ((i = is.read()) != -1)
    {
        baos.write(i);
    }
    return baos.toString();
}

private Handler mHandler = new Handler() {
    public void handleMessage(Message msg) {
        switch (msg.what){
            case 100:
                myTextView.setText(str);
                break;
        }
    }
};

}

解决方案

看看有没有报错,另外,看布局文件有没有错,textview的id有没有用错

解决方案二:

URLConnection 中文参数乱码问题
URLConnection 使用流的问题

时间: 2024-11-08 21:56:01

ndroid-关于urlconnection的问题的相关文章

Java中通过URLConnection获取Http响应Header信息

本文中演示如何通过URLConnection获取Http响应Header信息 1.从响应中获得Header信息 URL obj = new URL("http://www.bianceng.cn"); URLConnection conn = obj.openConnection(); Map<String, List<String>> map = conn.getHeaderFields(); 2.从响应Header中获取Server信息 Map<Str

java网络编程-使用URLConnection传递参数乱码,求大神们解决

问题描述 使用URLConnection传递参数乱码,求大神们解决 发送端: public static String sendPost(String url, String param) { PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.

java URLConnection 使用的问题

问题描述 URLurl=newURL("http://192.168.1.110:7001/servlet");URLConnectionconnection=url.openConnection();connection.setDoOutput(true);BufferedReaderb=newBufferedReader(newFileReader(file));BufferedWriterbw=newBufferedWriter(newOutputStreamWriter(con

关于URLConnection模拟访问页面的问题

问题描述 是这样的,我在做JAVAweb的时候,在这个项目的启动的时候,写了一个监听器,在这个监听器中用以下JAVA代码去模拟访问本工程的页面,但是发现根本得不到URLConnection这个对象,但是如果是访问别的服务器,比如www.baidu.com.是可以得到这个对象的,所以我就在想是不是URLConnection不能访本地的页面.另外,以下代码在我新建的一个类的main函数中又是可以执行的,就是在main函数中可以访问本地的,但是在监听器中却不可以了.有没有人知道有什么好的解决方案.最后

URLConnection想实现不用登陆去访问URL

问题描述 URLConnection想实现不用登陆去访问URL 我访问的这个URL.只能用管理员的权限登陆才能访问,如果用cookie或者session能实现吗?该怎么实现? public BufferedReader send(String content) { try { URLConnection conn = new URL(url).openConnection(); conn.setRequestProperty("Content-Type", contentType);

Java网络教程:URL + URLConnection

原文地址  译者:梁远铭   目录 HTTP GET和POST 从URLs到本地文件 在java.net包中包含两个有趣的类:URL类和URLConnection类.这两个类可以用来创建客户端到web服务器(HTTP服务器)的连接.下面是一个简单的代码例子: URL url = new URL("http://jenkov.com"); URLConnection urlConnection = url.openConnection(); InputStream input = url

urlconnection- 那httpurlConnection 和urlConnection相比 到底简化了什么 ?

问题描述 那httpurlConnection 和urlConnection相比 到底简化了什么 ? url+socket=urlconnection吗 是不是httpurlConnection 的设置请求方法相比于UrlConnection简化了一些内容? 还有就是响应头 是不是我们不用管啊 解决方案 你弄混了这两个类了,URLConnection是顶层的抽象类,是java.net包中的类. 而HttpURLConnection是sun.net.www.protocol.http包中的类,该类

android获取URLConnection和HttpClient网络请求响应码

http://www.open-open.com/lib/view/open1326868964593.html 有朋友问我网络请求怎么监听超时,这个我当时也没有没有做过,就认为是try....catch...获取异常,结果发现没有获取到,今天有时间,研究了一下,发现是从响应中来获取的对象中获取的,下面我把自己写的URLConnection和HttpClient网络请求响应码的实体共享给大家,希望对大家有帮助! package com.zhangke.product.platform.http.

? - URLConnection获得数据总不变

问题描述 我用URLConnection连接固定的url,没有使用缓存,然后用输入流获得数据,而且这个url是微博,理应数据每秒都在变,为什么获得数据要好几分钟才更新一次?是程序问题?还是对方api问题? 解决方案 解决方案二:把head信息打印出来看看解决方案三:好像没有head,只能从InpustStream里获得数据解决方案四:对不起,有head:Connection:keep-alivenull:HTTP/1.1200OKDate:Thu,04Nov201013:36:39GMTAcce

URLconnection 类建立连接问题

问题描述 URLconnection 类建立连接问题 如服务器地址为 Http://172.16.16.16:8080文件地址为 C:myDocumentaaaa.ptf 使用URL url = new URL("""");连接上该文件括号内的地址怎么填 解决方案 要geturl方法实现 解决方案二: java中用URLConnection 类post方式提交表单URLConnection类 解决方案三: URL中必须有 http:// 或者 ftp:// 或者 f