HttpURlConnection.getResponseCode()为什么请求不成功?请大师指点一下。

xiaoaishuaige 2012-07-18 03:58:21
本人菜鸟自学android,遇到这个问题不知道怎么解决,还望高手指点一下。谢谢!(有些专业术语,不是很懂,所以问问题的时候写的有点。。。还望谅解)。
1.想实现的效果:通过URL,使用HttpURLConnection进行请求/响应,访问web服务器资源。
2.web Server:自己电脑安装的Tomcat 6.0
代码:

① DownloadActivity:
package mars.download;

import mars.utils.HttpDownloader;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;;

public class DownloadActivity extends Activity {
/** Called when the activity is first created. */

private Button downloadTextButton;


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
downloadTextButton=(Button) findViewById(R.id.textButton);
downloadTextButton.setOnClickListener(new DownloadTextListener());
}

class DownloadTextListener implements OnClickListener{

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
System.out.println("!!!!!!!!!!!");
HttpDownloader httpdownloader=new HttpDownloader();
String test=httpdownloader.download("http://127.0.0.1:8080/test/cs.txt",3);
System.out.println(test);
}
}
}
②HttpDownloader(封装的一个下载类)
package mars.utils;

import java.io.BufferedReader;
import java.io.File;
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 javax.net.ssl.HttpsURLConnection;

public class HttpDownloader {

private URL url=null;

@SuppressWarnings("finally")
public String download(String urlStr,int timeout){
StringBuffer sb=new StringBuffer();
String line=null;
BufferedReader buffer=null;
try{
//创建一个URL对象
url=new URL(urlStr);
//创建一个Http连接
HttpURLConnection urlcon=(HttpURLConnection) url.openConnection();
urlcon.setConnectTimeout(timeout*1000);
urlcon.connect();
int state=urlcon.getResponseCode();
System.out.println(state);
//判断请求是否成功
if(state==urlcon.HTTP_OK){
InputStream is=urlcon.getInputStream();
InputStreamReader isr=new InputStreamReader(is);
buffer=new BufferedReader(isr);
while((line=buffer.readLine())!=null){
sb.append(line);
}
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
buffer.close();
}catch(Exception e){
e.printStackTrace();
}
return sb.toString();
}
}
}
我直接用浏览器可以查看http://127.0.0.1:8080/test/cs.txt 文本信息。
/////////////////////////////以上只是部分代码,请大师帮我看一下,到底怎么回事。
真心想拜一位高手为师!我的联系方式:小艾 Q:365001126
...全文
4572 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
deycool 2014-09-03
  • 打赏
  • 举报
回复
先getInputStream() 再 getResponseCode()
qq543066024 2014-07-14
  • 打赏
  • 举报
回复
引用 12 楼 wan_dou_ 的回复:
[quote=引用 10 楼 weichikai 的回复:] 不能再main方法里面添加网络请求,另启一个线程就可以了
果然管用 顶一个!!![/quote] 另启线程怎么写的,可以告诉我吗?谢谢!
豌豆 2014-04-16
  • 打赏
  • 举报
回复
引用 10 楼 weichikai 的回复:
不能再main方法里面添加网络请求,另启一个线程就可以了
果然管用 顶一个!!!
优雅的男子 2014-04-14
  • 打赏
  • 举报
回复
@weichikai正解,新版本要新建独立线程处理网络请求,mars教程中下载mp3与文本文件也是一样的原因,感谢楼上的
weichikai 2014-03-06
  • 打赏
  • 举报
回复
不能再main方法里面添加网络请求,另启一个线程就可以了
libufengiam 2013-09-20
  • 打赏
  • 举报
回复
同求,悲催,可能是版本问题,楼上的大爷们解决了没啊????
区块新萌 2013-07-04
  • 打赏
  • 举报
回复
引用 6 楼 Hander_Wei 的回复:
[quote=引用 4 楼 tqcenglish1990 的回复:] 不知道你找到原因没?    我刚也遇到了,没有添加网络权限的原因。
我添加了网络权限 一样抛出了一场 没有请求[/quote] 我这的问题是我在2.3.3上开发的,在4.2.2上运行就报错,在2.3.3上就可以
区块新萌 2013-07-04
  • 打赏
  • 举报
回复
引用 6 楼 Hander_Wei 的回复:
[quote=引用 4 楼 tqcenglish1990 的回复:] 不知道你找到原因没?    我刚也遇到了,没有添加网络权限的原因。
我添加了网络权限 一样抛出了一场 没有请求[/quote] 请问解决了吗? 我也遇到这个问题了
码了个农 2013-06-01
  • 打赏
  • 举报
回复
引用 4 楼 tqcenglish1990 的回复:
不知道你找到原因没?    我刚也遇到了,没有添加网络权限的原因。
我添加了网络权限 一样抛出了一场 没有请求
郑萧001 2013-03-25
  • 打赏
  • 举报
回复
模拟器是可以的,手机上是不可以的,你们遇到过吗?
tqcenglish1990 2012-08-17
  • 打赏
  • 举报
回复
不知道你找到原因没?
   我刚也遇到了,没有添加网络权限的原因。
xiaoaishuaige 2012-07-18
  • 打赏
  • 举报
回复
再顶一下~~~~~~~~~~~~~
xiaoaishuaige 2012-07-18
  • 打赏
  • 举报
回复
有木有人? 自己顶~
xiaoaishuaige 2012-07-18
  • 打赏
  • 举报
回复
我 Debug的时候到int state=urlcon.getResponseCode();
就直接抛出异常。
请求都不成功!

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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