android Http通信局域网测试详解

本文详述了如何在Android设备上进行HTTP通信测试,包括在PC上测试和在局域网中通过Android应用测试。通过搭建个人服务器并解决网络连接问题,如设置热点共享、路由器配置等,实现了数据交互。文章提供了Java代码示例,展示了如何在Android中发送HTTP请求和处理响应,同时也提到了Android 4.0以后主线程执行HTTP请求的限制及其解决方法。
摘要由CSDN通过智能技术生成

       以前一直用别人的服务器感觉特别别扭,而且一直受制于人。有句话怎么说“自己动手丰衣足食”,最近对Node.js,express框架以及javascript服务器搭建有些许研究,通过两天的研究终于搭建起自己的服务器,这个服务器搭建过程在这鄙人就不一一细说了,如果有需要的可以留言一起探讨。

      经过不懈的努力终于有了自己的服务器,在这呢我用了两种测试的方法,(1).在PC机上进行测试,(2).在局域网中通过android小DEMO测试接下来呢就详细对其进行讲解。

     在局域网中测试的时候一定要先ping通自己的网络,如果网络能够ping通却请求不会数据来,在这给你几种解决方法:

       (1).将电脑上的无线热点打开,让手机连接上此热点,这样电脑就相当于路由器,用电脑的ip地址就可以通信了。

      (2).对路由器就行无线网络共享数据设置,否则连上同一个路由器是不会通的。

      (3).自己用花生卡申请一个IP地址,把自己的IP地址映射到外网上就可以访问了。

    一.在PC机上进行测试详细步骤

        (1).在测试之前一定要ping通IP地址,只有两者通了才能进行数据交互,否则一切都妄谈。

                   废话不多说了直接上图,:

                   

          (2).在Eclipse中建立一个Java项目,建一个MainActivity.java的类,然后在里面写入下面的代码就OK了,代码中注释写的明明白白了。

public class MainActivity {


public static String excute(){


// 服务器的IP地址和端口号
String url = "http://localhost:3000/hellos";
// 通过HttpResultData去请求数据
return HttpResultData.getData(url);
}

public static void main(String[] args) {


// 将请求的数据保存下来
String result = excute();
System.out.println(result);
}
}

         (3).在建立一个向Http请求数据的类,大家都知道java是一个面向的对象的编程语言,所以大家一定要采用面向对象的思想的去写代码,这样有助于提高代码的重用率,不是说高内聚低耦合吗。在这呢就直接上代码了:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Map;
/**
 * @author 何斌
 * 功能:访问网络的类,对get和post方法进行了封装
 *
 */
public class HttpResultData {
/**
* get方法直接调用post方法
* @param url 网络地址
* @return 返回服务器请求回来的数据
*/
public static String getData(String url){


return postData(url, null);
}
/**
* 设定post方法获取网络资源,如果参数为null,实际上设定为get方法
* @param url 网络地址
* @param param 请求参数键值对
* @return 返回读取数据
*/
@SuppressWarnings("rawtypes")
public static <Key, Value> String postData(String url,Map<Key, Value> param){

System.out.println("HttpResultData----postData");
// 创建一个HttpURLConnection对象,用于连接指定站定
HttpURLConnection conn = null;
try {
// 创建一个URL对象,并绑定相应的站点
URL u = new URL(url);
// 打开于站点的连接
conn = (HttpURLConnection) u.openConnection();
// 创建一个缓冲区,用于存放请求回来的数据

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值