百度是这么回答的:文件结尾了还继续读文件,就导致这个错误抛出。本来EOF的数值就是-1,但是是一种用于错误标识的记号
解决方案 »
- eclipse xml的提示代码变成白色了 完全看不清!!! 在哪改。。
- Launcher2 图标的垂直间距和水平间距在哪个地方修改?
- 解析的xml天气信息,怎么显示为中文?
- 请教一个动态加载自定义View的问题!!!!!!
- 请大神看看这个问题怎么解决?
- 关于下发Android操作系统设置的问题
- 求高手!!同一个Activity中上下两层SurfaceView,如何在上面一层画画?
- 有带表情的输入框吗?
- Eclipse中运行Android项目时出现FATAL EXCEPTION: main以的错误以及ClassLoader referenced unknown
- 使用TextureView预览摄像头画面,画面滚动的问题
- android部署到2.2报错和4.2不报错!
- android中是使用socket和http进行通信,哪种方式更好,更常用?假如数据访问量很大的情况下,应该使用哪种?
} private static WebUtil bean = new WebUtil();
private String requestUrl = "";
private int requestTime = 0;
private String method = Constant.REQUEST_GET;
private String encoding = HTTP.UTF_8; /**
* 构造方法
*
* @param requestUrl
* 请求的地址
* @param requestTime
* 请求时长
* @param method
* 请求方式
* @param encoding
* 编码格式
*/
public WebUtil(String requestUrl, int requestTime, String method, String encoding) {
this.requestUrl = requestUrl;
this.requestTime = requestTime;
this.method = method;
this.encoding = encoding;
} /**
* 单例模式获得bean
*
* @return WebUtil
*/
public static WebUtil get() {
return bean;
} /**
* 根据url获得页面源码, 调用web接口
*
* @param params
* 参数列表 post必备, 比如:"name=张三&age=18"
* @param sessionInfo
* 可以保持session, 默认不保持
* @param isLine
* 得到的源码是否换行, 默认false
* @return String
*/
public String request(String params, String sessionInfo, boolean isLine) throws Exception {
Log.e(Constant.TAG_NAME, "调用web接口:" + requestUrl);
encoding = (ToolUtil.get().isBlank(encoding) ? HTTP.UTF_8 : encoding);
method = (ToolUtil.get().isBlank(method) ? Constant.REQUEST_GET : method.toUpperCase());
String mathStr = "mathRandom=" + Math.random();
if (method.equals(Constant.REQUEST_GET)) {
requestUrl += (requestUrl.indexOf("?") != -1 ? "&" : "?") + mathStr;
if (!ToolUtil.get().isBlank(params)) {
requestUrl += "&" + params;
}
}
HttpURLConnection conn = (HttpURLConnection) new URL(requestUrl).openConnection();
if (!ToolUtil.get().isBlank(sessionInfo)) {
conn.setRequestProperty("Cookie", sessionInfo);
}
conn.setRequestMethod(method);
if (requestTime > 0) {
conn.setConnectTimeout(isWifi() ? requestTime : requestTime * 3);
conn.setReadTimeout(isWifi() ? requestTime : requestTime * 3);
}
if (method.equals(Constant.REQUEST_POST)) {
conn.setDoOutput(true);
OutputStream output = conn.getOutputStream();
output.write((ToolUtil.get().isBlank(params) ? mathStr : params + "&" + mathStr).getBytes(encoding));
output.flush();
output.close();
}
String response = FileUtil.get().readFile(conn.getInputStream(), encoding, 1, isLine);
conn.disconnect();
return response;
}