好久没写博客了,由于公司要做android,笔者也是第一次接触。

这是在项目中遇到一个比較麻烦的问题。记录下来备忘(本人刚接触。有不正确的地方请不吝赐教)。

发送请求的代码:

package com.jiujian.mperdiem;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;public class AppUtil {// 本地測试路径public static final String webBaseUrl = "http://ip:端口";/** 訪问URL。获取结果 method: GET, POST*/public static String loadUrlResponse(String method, String urlString) {HttpURLConnection conn = null; // 连接对象InputStream is = null;StringBuffer result = new StringBuffer();try {URL url = new URL(urlString); // URL对象conn = (HttpURLConnection) url.openConnection(); // 使用URL打开一个链接conn.setDoInput(true); // 同意输入流,即同意下载conn.setDoOutput(true); // 同意输出流,即同意上传conn.setUseCaches(false); // 不使用缓冲conn.setRequestMethod(method); // 使用get请求is = conn.getInputStream(); // 获取输入流。此时才真正建立链接InputStreamReader isr = new InputStreamReader(is);BufferedReader bufferReader = new BufferedReader(isr);String inputLine = "";while ((inputLine = bufferReader.readLine()) != null) {result.append(inputLine).append("\n");}} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {if (is != null) {try {is.close();} catch (IOException e) {e.printStackTrace();}}if (conn != null) {conn.disconnect();}}return result.toString();}
}

调用代码:

StringBuffer sbUpdateDeviceRefreshInstall = new StringBuffer(AppUtil.webBaseUrl);
sbUpdateDeviceRefreshInstall.append("XXX?

UserId="); sbUpdateDeviceRefreshInstall.append(getUserId()); AppUtil.loadUrlResponse("POST", sbUpdateDeviceRefreshInstall.toString());

代码是没有问题的,但是app端发送请求。server端却一直没有信息打印。

错误信息是:android.os.NetworkOnMainThreadException

最后才发现android 3.0以后就不同意在主线程上进行网络訪问的,

于是把代码改成:

new Thread(){@Overridepublic void run() {StringBuffer sbUpdateDeviceRefreshInstall = new StringBuffer(AppUtil.webBaseUrl);sbUpdateDeviceRefreshInstall.append("XXX?UserId="<span style="font-family: 'Microsoft YaHei';">);</span>sbUpdateDeviceRefreshInstall.append(getUserId());AppUtil.loadUrlResponse("POST", sbUpdateDeviceRefreshInstall.toString());}}.start();

这样就没问题了。

假设是刚接触android,能够推荐看:第一行代码,这本书对于入门来说挺不错的。

个人主页:http://www.itit123.cn/ 很多其它干货等你来拿

android 发送http请求相关推荐

  1. android发送网络请求没反应,Android无法使用HttpURLConnection发送GET请求

    我正在尝试在我的应用程序中使用HttpURLConnection.我将我的请求方法设置为'GET',但是当我尝试检索输出流时,该方法将更改为'POST'! 我不确定是什么原因,但是当我使用'POST' ...

  2. android发送微信请求失败,安卓微信浏览器POST请求发不出去。

    post请求在微信内置浏览器里发不出去,在PC上.IOS微信内置浏览器.IOS的safari浏览器.安卓默认浏览器都可以成功发出. 测试地址:http://jx-test-agent.yaojiqip ...

  3. Android 发送HTTP GET POST 请求以及通过 MultipartEntityBuilder 上传文件

    折腾了好几天的 HTTP 终于搞定了,经测试正常,不过是初步用例测试用的,因为后面还要修改先把当前版本保存在博客里吧. 其中POST因为涉及多段上传需要导入两个包文件,我用的是最新的 httpmine ...

  4. android 发送http,在Android用Get方式发送HTTP请求

    对自己的Android学习做个总结,方便以后查看. 一.在Android用Get方式发送http请求,使用的是Java标准类,也比较简单. 主要分以下几步: 1.构造URL URL url = new ...

  5. Android Wifi认证(Portal)代码解析DNS并使用Socket发送Http请求完成认证

    最近在一能开启多网络上网的Android系统中遇到连接认证WIFI问题,通过http://connectivitycheck.gstatic.com/generate_204不能完成认证. 可能原因为 ...

  6. fiddler抓取Android手机app发送的请求

    场景:需要抓取手机APP发送的请求 准备工作:电脑安装fiddler.电脑.手机需要连接到同一个局域网 1.下载安装fiddler 网址:https://www.telerik.com/downloa ...

  7. android点击跳转卸载,[android]通过JNI实现卸载自身App后台发送Http请求~

    freddon 发表于2016-10-21 阅读 1252 | 评论 1 使用JNI fork进程实现 监控自身App被卸载 首先这个功能仅供cankao 也可以使用linux exec命令跳转到浏览 ...

  8. Android数据手册02:android.permission权限请求汇总

    在Android开发中,当程序执行需要操作安全敏感项时,必须在androidmanifest.xml中声明相关权限请求. 比如,声明拨打电话的权限请求方法如下: 1 <uses-permissi ...

  9. android 请求权限失败怎么办,java – Android HTTP POST请求错误 – 套接字失败EACCES(权限被拒绝)...

    我正在尝试从 Eclipse下的Android应用程序向我的localhost发送POST请求,但是我收到此错误: socket failed EACCES (Permission denied). ...

最新文章

  1. 脚本-收集计算机信息
  2. 5G NR — Open vRAN 的组织单位
  3. python 难度-Python分析 oj 网的题目难度和通过率的关系
  4. php依次替换src,如何在php中替换img中src内容
  5. buuctf 你居然赶我走1
  6. boost::process::extend相关的测试程序
  7. TensorFlow2-神经网络基础
  8. 2-7 SpringBoot常用注解讲解
  9. 作者:邹本友,男,中国人民大学信息学院博士生, CCF学生会员。
  10. json例外被抛出并且未接住
  11. (病毒安全)服务器被中了木马,如何清除
  12. 融云一站式「云市场」上线,携手生态伙伴,共建价值平台
  13. 1-智能QOS方案介绍
  14. 安全配置管理 (SCM):建立安全的基础
  15. C#根据年份计算生肖属相的代码
  16. 如何用U盘安装操作系统
  17. 计算机毕业设计-基于ssm的问卷调查管理系统
  18. 微软常用运行库合集,电脑必备组件
  19. 如何保障企业网络安全
  20. AB测试实战案例讲解及踩坑事项

热门文章

  1. 2013年上半年全国高等学校(安徽考区)计算机水平考试试卷,2013年上半年全国高等学校(安徽考区)计算机水平考试试卷(6页)-原创力文档...
  2. mysql无法插入行_在mysql中数据才插入20多行就报错,求救啊!!!
  3. 可由一个尾指针唯一确定的链表有_L2数据结构第08课 单向链表和循环链表
  4. 2021年人工神经网络第四次作业要求:第七题
  5. 全国大学生智能车单车行进组中的单车改造飞轮安装方案参考
  6. 将动画装入MicroPython I2C OLED
  7. 节能信标组比赛过程中直流电源设置
  8. 百度线下赛道报名通知!
  9. 基于ESP32智能车竞赛比赛系统硬件初步调试-5-6
  10. 几类 3.3V降压稳压电源IC芯片简介