最近这两天没怎么写Android代码,都在补习java的网络编程和http,UDP,TCP这些,总算是搞懂了大概要怎么操作。
首先网络通信用的是java中的URL类及方法,该类的参数是协议(http),IP及端口,其实完成通信只需要应用层的HTTP协议,UDP与TCP这两个传输层的协议这些也用java实现了一下,应该是后面才会用到。
考虑到现在我应该做不到自己搭一个服务器,所以我把别人搭好的服务器下载到了电脑上,链接https://github.com/TrillGates/SOBAndroidMiniWeb,这个服务器感觉对新手挺友好的,读取图片和文字什么的都有相应的的API,比较推荐
在开始代码之前首先先在manifest里面把权限设置好!很大一个坑,因为代码如果一开始没设权限,运行到虚拟机上之后会报错(警告),关键是改了代码加了权限依然会报错,除非把app卸载了或者换一个虚拟机,而我至今没找到在虚拟机里卸载app的方法,因为连图标都没有,所以只有换一个虚拟机的方法……

//网络权限
<uses-permission android:name="android.permission.INTERNET"/>

注意是在<application外面加
新建按钮组件,设置监听器,在监听器里面敲代码
首先是新建url,这个API是读取文本。然后建立一个连接到该url的对象,之后的操作都是对这个连接对象进行。写完这里会报错,根据提示trycatch一下就行

URL url = new URL("http:10.0.2.2:9102/get/text");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();

connection的方法比较多,都是设置(请求时)或者返回(响应时)该一些数据,这里举几个例子

connection.setConnectTimeout(10000);	//设置最大连接时长10s
connection.setRequestMethod("GET");	//设置请求方法为get
connection.setRequestProperty("Accept-language", "zh-CN,zh;q=0.9");//设置语言为中文
 connection.setRequestProperty("Accept", "*/*");	//设置响应内容格式

关键的一步connect

connection.connect();

到这里已经完成连接了,可以在日志里输出一些信息来检验,这里选择输出URL的内容

Object content = connection.getURL();
 Log.d("teg","content为"+content);

到这里代码就基本完成了,运行之后会报错(警告),因为在主线程里面进行网络操作是不允许的,需要创建一个线程执行之前的操作,把代码剪切粘贴到线程里面

new Thread(new Runnable() {
}).start();

运行,点击按钮日志输出结果

android 代码 用户留言 android 写代码_android 代码 用户留言