android-Android网络请求,在电脑浏览器上可以访问到服务器,手机却访问不到

问题描述

Android网络请求,在电脑浏览器上可以访问到服务器,手机却访问不到

用浏览器可以访问到,但是手机就有时会出现FileNotFoundException,重点是把程序退出之后,有时又可以访问到该地址了请各位大侠帮帮忙

解决方案

C++实现文本消息推送--通过post请求方式访问第三方服务器从电脑向手机进行消息推送

解决方案二:

以下是firstPost方法 :
public static String firstPost(String urlString) {
StringBuffer resultData = new StringBuffer("");// 使用StringBuffer比String更高效
try {
URL url = new URL(urlString);// 新建URL对象
HttpURLConnection urlConn = (java.net.HttpURLConnection) url
.openConnection();// 新建网络连接对象
urlConn.setRequestMethod("POST");
// 避免出现乱码
urlConn.setRequestProperty("Accept-Charset", "utf-8");
urlConn.setRequestProperty("contentType", "utf-8");
urlConn.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");// POST方式必需
// 获取sessionId
java.lang.String cookieval = urlConn.getHeaderField("set-cookie");
if (cookieval != null) {
MyApplication.setSessionid(cookieval.substring(0,
cookieval.indexOf(";")));
Log.e("sessionId", MyApplication.getSessionid());
}
urlConn.connect();
java.io.InputStreamReader in = new java.io.InputStreamReader(
urlConn.getInputStream());// 新建IO对象
if (urlConn.getContentLength() != -1) {// 响应头部返回了流的长度
char[] buffer = new char[urlConn.getContentLength()];
in.read(buffer, 0, buffer.length);
resultData.append(buffer);
} else {// 流的长度未知
java.io.BufferedReader buffer = new java.io.BufferedReader(in);// 输出流
java.lang.String inputLine = null;
while (((inputLine = buffer.readLine()) != null))// 使用循环来读取获得的数据
{
resultData.append(inputLine + "
");
}
}
in.close();
urlConn.disconnect();
} catch (java.net.UnknownHostException e) {// 未连接网络
e.printStackTrace();
} catch (android.os.NetworkOnMainThreadException e) {// UI线程不支持网络操作
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return resultData.toString();
}

解决方案三:

访问网络要异步。。。。

解决方案四:

以下是Log出来的:
[url]http://203.195.223.58:8088/up_campus/createChatroom/20151005413[/url]
11-10 11:15:43.230: D/sessionid(10572): JSESSIONID=C309FAE57F04F502B207B73E27C282EB
11-10 11:15:43.350: W/System.err(10572): java.io.FileNotFoundException: [url]http://203.195.223.58:8088/up_campus/createChatroom/20151005413[/url]
11-10 11:15:43.350: W/System.err(10572): at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:190)
11-10 11:15:43.350: W/System.err(10572): at com.jh.util.Function.secondPost(Function.java:95)
11-10 11:15:43.350: W/System.err(10572): at com.whu.ql.view.ErshouActivity$1.run(ErshouActivity.java:46)
11-10 11:15:43.350: W/System.err(10572): at java.lang.Thread.run(Thread.java:841)

解决方案五:

我注释了以下几行代码:

if (cookieval != null) {
    MyApplication.setSessionid(cookieval.substring(0,
    cookieval.indexOf(";")));
    Log.e("sessionId", MyApplication.getSessionid());
}

然后在线程中运行了你的代码,没有问题,每次都能够获取到正确的resultData。

所以,你可以看一下我注释的几行代码,你写的setSessionid()方法有没有问题。另外,如果不需要线程同步,StringBuilder比StringBuffer性能更好。
http://blog.csdn.net/wanghang1208/article/details/49764245

时间: 2024-10-03 00:20:14

android-Android网络请求,在电脑浏览器上可以访问到服务器,手机却访问不到的相关文章

Android HTTP网络请求的异步实现_Android

前言 大家都知道网络操作的响应时间是不定的,所有的网络操作都应该放在一个异步操作中处理,而且为了模块解耦,我们希望网络操作由专门的类来处理.所有网络数据发送,数据接收都有某几个类来实现,外部其它模块只要调用和处理回调函数即可.外部模块和网络模块之间的调用关系可以用如下图表示: 调用端只要创建Request对象,设置参数,发起请求,即可.最后结果通过回调函数返回.右边的异步任务,HttpClient创建,参数解析,错误处理全部交给网络处理模块来完成.由此来看,这个网络模块其实是重复性很高的开发工作

android开发银联支付在小米4c上直接ANR异常,别的手机没事,什么原因???

问题描述 android开发银联支付在小米4c上直接ANR异常,别的手机没事,什么原因??? android银联支付,点击调起银联,在别的手机上运行正常,在小米4c上直接ANR异常,什么原因??? 解决方案 http://jingyan.baidu.com/article/b2c186c8e49428c46ff6ff43.html

无线连不上-家庭网络,我电脑一上无线,所以人都连不上网,怎么办

问题描述 家庭网络,我电脑一上无线,所以人都连不上网,怎么办 情况是这样的,家里的无线路由器提供无线上网功能,家里3个人3台笔记本,除了我的本之外,5个能上网的设备都能同时无线上网,我的比较本开机能连上无线路由,信号也是满的,但是,只要我一上网(打开网页或者qq等通讯设备连上网,也就是和外网发生一次交互),不出一会儿,无线路由器就不能上网了,其他设备也不能访问,虽然信号依旧是满的,上192.168.1.1有时候也上不去,上去也会ping不通外网,必须我电脑断了无线连接或者重新连接才能好,我不清楚

Android HTTP网络请求的异步实现

前言 大家都知道网络操作的响应时间是不定的,所有的网络操作都应该放在一个异步操作中处理,而且为了模块解耦,我们希望网络操作由专门的类来处理.所有网络数据发送,数据接收都有某几个类来实现,外部其它模块只要调用和处理回调函数即可.外部模块和网络模块之间的调用关系可以用如下图表示: 调用端只要创建Request对象,设置参数,发起请求,即可.最后结果通过回调函数返回.右边的异步任务,HttpClient创建,参数解析,错误处理全部交给网络处理模块来完成.由此来看,这个网络模块其实是重复性很高的开发工作

Android Asynchronous Http Client-Android异步网络请求客户端接口

1.简介Android中网络请求一般使用Apache HTTP Client或者采用HttpURLConnect,但是直接使用这两个类库需要写大量的代码才能完成网络post和get请求,而使用android-async-http这个库可以大大的简化操作,它是基于Apache's HttpClient ,所有的请求都是独立在UI主线程之外,通过回调方法处理请求结果,采用android  Handler message 机制传递信息. 2.特性(1)采用异步http请求,并通过匿名内部类处理回调结果

关于Android网络请求超时处理

问题描述 关于Android网络请求超时处理 一个请求10秒后无响应怎么做处理,我想在超时后调用缓存数据,但是不知道怎么判断网络超时,项目用了afinal,没找到超时后的处理方法,只有onsuccess和onfailed方法 解决方案 Android Volley网络请求Android使用Volley请求网络Android 异步网络请求及协调CountDownLatch 解决方案二: // 1.设置超时时间 conn.setConnectTimeout(5000);// 设置连接超时时间 //

Android开发中的几种网络请求方式详解_Android

Android应用经常会和服务器端交互,这就需要手机客户端发送网络请求,下面介绍四种常用网络请求方式,我这边是通过Android单元测试来完成这四种方法的,还不清楚Android的单元测试的同学们请看Android开发技巧总结中的Android单元测试的步骤一文. Java.NET包中的HttpURLConnection类 Get方式: // Get方式请求 public static void requestByGet() throws Exception { String path = "h

Android最基本的异步网络请求框架

本篇文章我们来一起写一个最基本的Android异步网络请求框架,借此来了解下Android中网络请求的相关知识.由于个人水平有限,文中难免存在疏忽和谬误,希望大家可以指出,谢谢大家. 1. 同步网络请求 以HTTP的GET请求为例,我们来介绍一下Android中一个基本的同步请求框架的实现.直接贴代码: public class HttpUtils { public static byte[] get(String urlString) { HttpURLConnection urlConnec

Android实现网络加载时的对话框功能

效果预览 简要说明 现在android程序网络请求操作是必不可少的,然而拥有好的交互体验的程序对网络耗时操作的处理尤为重要. 代码说明: dialog_loading.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="