新手初学httpURLconnection 问题请教[50分]

BlankShrimp 2018-01-30 04:40:13
这是代码,目标是点击按钮后get网页的HTML代码并显示在textview上,方便起见把主代码写在了主activity
问题在于,为什么点了按钮没有任何反应?
package com.blankshrimp.httptest;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

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

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

TextView resText;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1 = (Button) findViewById(R.id.button_233);
resText = (TextView) findViewById(R.id.textview);
button1.setOnClickListener(this);
}

@Override
public void onClick(View v) {
if (v.getId() == R.id.button_233) {
SRWHUC();
}
}

private void SRWHUC() {
new Thread(new Runnable() {
@Override
public void run() {
HttpURLConnection connection = null;
BufferedReader reader = 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();
reader = new BufferedReader(new InputStreamReader(in));
StringBuilder response = (new StringBuilder());
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
showRes(response.toString());
} catch (Exception e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (connection != null) {
connection.disconnect();
}
}
}
}).start();
}

private void showRes (final String response) {
runOnUiThread(new Runnable() {
@Override
public void run() {
resText.setText(response);
}
});
}
}


...全文
548 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
BlankShrimp 2018-02-02
  • 打赏
  • 举报
回复
引用 5 楼 BlankShrimp 的回复:
[quote=引用 3 楼 jklwan 的回复:] [quote=引用 2 楼 BlankShrimp 的回复:] 改成https//www.baidu.com/以后依旧没有反应。。。 换用OKhttp以后也是一样的 无论AVM还是我自己的手机都是一样的
是https://www.baidu.com/ 啊,你冒号没有啊。AndroidManifest文件网络访问权限加了吗

<uses-permission android:name="android.permission.INTERNET"/>
[/quote] 啊的确是忘加权限了,我试试看[/quote] 的确是权限的问题!谢谢了!!
BlankShrimp 2018-02-02
  • 打赏
  • 举报
回复
引用 3 楼 jklwan 的回复:
[quote=引用 2 楼 BlankShrimp 的回复:] 改成https//www.baidu.com/以后依旧没有反应。。。 换用OKhttp以后也是一样的 无论AVM还是我自己的手机都是一样的
是https://www.baidu.com/ 啊,你冒号没有啊。AndroidManifest文件网络访问权限加了吗

<uses-permission android:name="android.permission.INTERNET"/>
[/quote] 啊的确是忘加权限了,我试试看
jklwan 2018-01-31
  • 打赏
  • 举报
回复
引用 2 楼 BlankShrimp 的回复:
改成https//www.baidu.com/以后依旧没有反应。。。 换用OKhttp以后也是一样的 无论AVM还是我自己的手机都是一样的
是https://www.baidu.com/ 啊,你冒号没有啊。AndroidManifest文件网络访问权限加了吗

<uses-permission android:name="android.permission.INTERNET"/>
qq_37596122 2018-01-31
  • 打赏
  • 举报
回复
把运行日志发一下,报什么错
BlankShrimp 2018-01-30
  • 打赏
  • 举报
回复
引用 1 楼 jklwan 的回复:
你这个地址会自动重定向到https://www.baidu.com/,所以你是获取不到内容的,要么改掉地址,要么获取到重定向地址重新获取内容。
改成https//www.baidu.com/以后依旧没有反应。。。 换用OKhttp以后也是一样的 无论AVM还是我自己的手机都是一样的
jklwan 2018-01-30
  • 打赏
  • 举报
回复
你这个地址会自动重定向到https://www.baidu.com/,所以你是获取不到内容的,要么改掉地址,要么获取到重定向地址重新获取内容。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧