Android中从服务器端读取数据的方式

来源:互联网 发布:破解今日头条算法推荐 编辑:程序博客网 时间:2024/05/18 02:37


1.获取Android手机唯一设备号的方法:

TelephonyManager telephonyManager= (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);

imei=telephonyManager.getDeviceId();

2.从服务器端读取数据的方法:

public class MainActivity extends NativeActivity{

private UnityPlayer mUnityPlayer;

mUnityPlayer = new UnityPlayer(this);

public void GetDataFromUrl()
{
try {
try {
Text = getJsonContent(url_Share);//获得服务器端的数据(这个数据是String类型的Json格式的)

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(Text != null)
{
try {
Text = decrypt(Text);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mUnityPlayer.UnitySendMessage("Main Camera", "Test2",Text);//与unity通信:调用Main Camera物体上的脚本中Test2方法,传给Test2方法的参数是Text 
}


}


//从服务器端获得Json格式的字符串
public static String getJsonContent(String urlStr)
   {
       try
       {// 获取HttpURLConnection连接对象
           URL url = new URL(urlStr);
           HttpURLConnection httpConn = (HttpURLConnection) url
                   .openConnection();
           // 设置连接属性
           httpConn.setConnectTimeout(1500);
           httpConn.setDoInput(true);
           httpConn.setRequestMethod("POST");
           // 获取相应码
           int respCode = httpConn.getResponseCode();
           if (respCode == 200)
           {
               return ConvertStream2Json(httpConn.getInputStream());
           }
       }
       catch (MalformedURLException e)
       {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
       catch (IOException e)
       {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
       return "";
   }


private static String ConvertStream2Json(InputStream inputStream)
   {
       String jsonStr = "";
       // ByteArrayOutputStream相当于内存输出流
       ByteArrayOutputStream out = new ByteArrayOutputStream();
       byte[] buffer = new byte[1024];
       int len = 0;
       // 将输入流转移到内存输出流中
       try
       {
           while ((len = inputStream.read(buffer, 0, buffer.length)) != -1)
           {
               out.write(buffer, 0, len);
           }
           // 将内存流转换为字符串
           jsonStr = new String(out.toByteArray());
       }
       catch (IOException e)
       {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
       return jsonStr;
   }




0 0