1.首先获得url,传入URL类,利用URL的openconnection方法,获得URLConnection,去的输入流,进行操作,具体代码如下:

  1. public class NetConnection{
  2. public NetConnection(final String url,final HttpMethod method,final SuccessCallback successCallback,
  3. final FailCallback failCallback,final String ... key){
  4. new AsyncTask<Void, Void, String>() {
  5. protected String doInBackground(Void... params) {
  6. StringBuffer parameter = new StringBuffer();
  7. for (int i = 0; i < key.length; i+=2) {
  8. parameter.append(key[i]).append("=").append(key[i+1]).append("&");
  9. }
  10. try {
  11. URLConnection uc = null;
  12. switch(method){
  13. case POST:
  14. uc = new URL(url).openConnection();
  15. uc.setDoInput(true);
  16. uc.setDoOutput(true);
  17. BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(uc.getOutputStream(),
  18. Config.CHARSET));
  19. bw.write(parameter.toString());
  20. bw.flush();
  21. break;
  22. default:
  23. uc = new URL(url+"?"+parameter.toString()).openConnection();
  24. break;
  25. }
  26. System.out.println("request url:"+uc.getURL());
  27. System.out.println("request data:"+parameter);
  28. BufferedReader bf = new BufferedReader(new InputStreamReader(uc.getInputStream(), Config.CHARSET));
  29. String line = null;
  30. StringBuffer sb = new StringBuffer();
  31. while ((line = bf.readLine()) != null) {
  32. sb.append(line);
  33. }
  34. System.out.println("result:"+sb);
  35. return sb.toString();
  36. } catch (MalformedURLException e) {
  37. e.printStackTrace();
  38. } catch (IOException e) {
  39. e.printStackTrace();
  40. }
  41. return null;
  42. }
  43. @Override
  44. protected void onPostExecute(String result) {
  45. if (result != null) {
  46. if (successCallback != null) {
  47. successCallback.onSuccess(result);
  48. }
  49. }else {
  50. if (failCallback != null) {
  51. failCallback.onFail();
  52. }
  53. }
  54. super.onPostExecute(result);
  55. }
  56. }.execute();
  57. }
  58. public static interface SuccessCallback{
  59. void onSuccess(String result);
  60. }
  61. public static interface FailCallback{
  62. void onFail();
  63. }
  64. }

里面封装了两个接口,SuccessCallback和FailCallback,分别用于实现这个类的时候重写,来执行取得数据和灭幼取得数据的情况。参数中用字符串包含了请求参数。

android解析网络json数据(1)的更多相关文章

  1. 模拟QQ侧滑控件 实现三种界面切换效果(知识点:回调机制,解析网络json数据,fragment用法等)。

    需要用到的lib包 :解析json  gson包,从网络地址解析json数据成String字符串的异步网络解析工具AsyncHttpClient等 下载地址:点击下载 Xlistview 下拉上拉第三 ...

  2. 解析网络json数据,模拟美团界面显示。

    <?xml version="1.0" encoding="UTF-8"?> <RelativeLayout xmlns:android=&q ...

  3. Android解析服务器Json数据实例

    Json数据信息如下: { "movies": [ { "movie": "Avengers", "year": 201 ...

  4. [Swift通天遁地]四、网络和线程-(5)解析网络请求数据:String(字符串)、Data(二进制数据)和JSON数据

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  5. android 复杂的json数据解析

    1.通过谷歌的Gson来进行解析: json数据:sTotalString = {"message":"success","result": ...

  6. Gson解析复杂Json数据

    背景                                                                   json是一种数据格式,便于数据传输.存储.交换. gson是 ...

  7. 解析天气预报JSON数据

    解析天气预报JSON数据 JSON字符串 constjson2 = '{' + #13#10 +'"error":0,' + #13#10 +'"status" ...

  8. mormot解析天气预报JSON数据

    mormot解析天气预报JSON数据 uses SynCommons; constjson2 = '{' + #13#10 +'"error":0,' + #13#10 +'&qu ...

  9. Android网络请求与数据解析,使用Gson和GsonFormat解析复杂Json数据

    版权声明:未经博主允许不得转载 一:简介 [达叔有道]软件技术人员,时代作者,从 Android 到全栈之路,我相信你也可以!阅读他的文章,会上瘾!You and me, we are family ...

随机推荐

  1. 6.19 noip模拟题(题目及解析转自 hzwer 2014-3-15 NOIP模拟赛)

    Problem 1 高级打字机(type.cpp/c/pas) [题目描述] 早苗入手了最新的高级打字机.最新款自然有着与以往不同的功能,那就是它具备撤销功能,厉害吧. 请为这种高级打字机设计一个程序 ...

  2. [POI 2004]SZP

    Description Byteotian 中央情报局 (BIA) 雇佣了许多特工. 他们每个人的工作就是监视另一名特工.Byteasar 国王需要进行一次秘密行动,所以他要挑选尽量多的信得过的特工. ...

  3. Blocks

    Description solution 这题和之前做过的一题的一个套路非常类似:把不是更优的决策给去掉,使得序列变得具有单调性,分析这题: 发现如果两个右端点 \(i\),\(j\) 满足 \(su ...

  4. ●BZOJ 3123 [Sdoi2013]森林

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3123 题解: 主席树,在线,启发式合并 简单版(只有询问操作):[2588: Spoj 10 ...

  5. NOIP2014-5-17模拟赛

    Problem 1 双色球(ball.cpp/c/pas) [题目描述] 机房来了新一届的学弟学妹,邪恶的chenzeyu97发现一位学弟与他同名,于是他当起了善良的学长233 "来来来,学 ...

  6. 2015 多校联赛 ——HDU5299(树删边)

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission ...

  7. [BZOJ]1045 圆上的整点(HAOI2008)

    数学题第二弹! Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. Input 一个正整数r. Output 整点个数. Sample Input 4 ...

  8. VK CUP2017 ROUND 1

    来自FallDream的博客.未经允许,请勿转载,谢谢. ---------------------------------------------------- 和ditoly组队打vkcup,原来 ...

  9. 文件服务器的详细配置之共享权限与NTFS权限的设置

       文件服务器的详细配置之共享权限与NTFS权限的设置    在大中型企业中,一般而言所谓文件服务器是指共享文件夹,即对共享权限与NTFS权限的设置!当然这也是我们搞网络者必须会的,是必经之路!我旨 ...

  10. 怎样使用Secure CRT查看vcenter和esxi主机的日志文件(转)

    对ESXI主机的日志管理对于故障诊断和合规性至关重要.Esxi主机的日志通过syslog工具进行管理的,在默认的情况下,日志文件存储在主机的scratch分区中(/scratch/log/).scra ...