博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Http 传输二维json
阅读量:6259 次
发布时间:2019-06-22

本文共 4436 字,大约阅读时间需要 14 分钟。

传输一维的好说

public static String  doPost(String url) {        String result = new String();        OutputStream out = null;        InputStream in = null;        try {            URL realUrl = new URL(url);            HttpURLConnection urlConnection = (HttpURLConnection) realUrl.openConnection();            urlConnection.setConnectTimeout(10000);//设置连接超时            urlConnection.setReadTimeout(30000);//            urlConnection.setRequestProperty("ser-Agent", "Fiddler");            urlConnection.setRequestProperty("connection", "Keep-Alive");            //urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");            //urlConnection.setRequestProperty("Content-Type", "text/html; charset=UTF-8");            urlConnection.setRequestProperty("Content-Type",  "application/json");            urlConnection.setRequestMethod("POST");            // 发送POST请求必须设置如下两行            urlConnection.setDoOutput(true);            urlConnection.setDoInput(true);            urlConnection.setChunkedStreamingMode(0);            // 获取URLConnection对象对应的输出流            out = new BufferedOutputStream(urlConnection.getOutputStream());            // 发送请求参数//            String postContent =//                    URLEncoder.encode("userName", "UTF-8") + "=" +//                    URLEncoder.encode("admin", "UTF-8") + "&" +//                    URLEncoder.encode("passWord", "UTF-8") + "="+//                    URLEncoder.encode("admin", "UTF-8") ;            JSONObject jsonObject = new JSONObject();            jsonObject.put("cmd","mobile");            jsonObject.put("param","00000000000");            Data  = jsonObject.toString();            //String json = java.net.URLEncoder.encode(jsonObject.toString(), "utf-8");            Log.e("数据", Data );//            String  postContent ="cmd="//                    +URLEncoder.encode("check_mobile", "utf-8") + "&" +//                    "mobile="+//                    URLEncoder.encode("18363890557", "utf-8");            //Log.e("err",postContent);            out.write(Data.getBytes());            out.flush();            out.close();            if (urlConnection.getResponseCode() == 200) {                InputStreamReader inputStreamReader = new InputStreamReader(urlConnection.getInputStream(),"UTF-8");                BufferedReader bufferedReader = new BufferedReader(inputStreamReader);                String ee=null;                while ((ee = bufferedReader.readLine())!=null)                {                    result = ee;                    Log.e("err","接收到数据="+result);                }            }else {                result = null;            }        } catch (Exception e) {            Log.e("err",e+"");        } finally {
//使用finally块来关闭输出流、输入流 try { if (out != null) { out.close(); } if (in != null) { in.close(); } } catch (IOException ex) { ex.printStackTrace(); } } return result; }

然后直接用任务

new Thread(new Runnable() {            @Override            public void run () {                String sss = doPost("http://具体的地址");                //Log.e("err","Read="+sss);            }        }).start();

 

现在说二维的

假设要封装成这样

{ "cmd":"check_mobile", "param":{ "mobile":"00000000" } }

后面的是一个二维的json

一开始我以为

JSONObject jsonObject1 = new JSONObject();            jsonObject1.put("mobile","0000000000");            String str = jsonObject1.toString();            JSONObject jsonObject = new JSONObject();            jsonObject.put("cmd","check_mobile");            jsonObject.put("param",str);            Data  = jsonObject.toString();

不可以....发现数据是这样的

然后就在想是不是   String str = jsonObject1.toString();    jsonObject.put("param",str);   不应该这样

 

所以

JSONObject jsonObject1 = new JSONObject();            jsonObject1.put("mobile","0000000000");            //String str = jsonObject1.toString();            JSONObject jsonObject = new JSONObject();            jsonObject.put("cmd","check_mobile");            jsonObject.put("param",jsonObject1);            Data  = jsonObject.toString();

这样就可以了

 

后来尝试了其它各种方式

发现用Map也是可以的

 

Map map1 = new HashMap
(); map1.put("mobile","00000000000"); Map map2 = new HashMap
(); map2.put("cmd","check_mobile"); map2.put("param",map1); String Data = new JSONObject(map2).toString();

 晚安

 

转载地址:http://chqsa.baihongyu.com/

你可能感兴趣的文章
[spring]03_装配Bean
查看>>
第116天: Ajax运用artTemplate实现菜谱
查看>>
Func和Action委托简单用法
查看>>
[20180322]查看统计信息的保存历史.txt
查看>>
Hbase1.4.0安装教程
查看>>
Oracle死锁一例(ORA-00060),锁表导致的业务死锁问题
查看>>
Swift中的函数常见写法
查看>>
iOS开发实战 - 完美解决UIScrollView嵌套滑动手势冲突
查看>>
IO流学习总结(下)---序列化 反序列化
查看>>
万物互联 | 无感停车解决方案探析
查看>>
用VR学习灾难逃生技巧,地震来了不再慌
查看>>
朱啸虎:区块链是伪风口的可能性大,任何创新都要经历死亡谷
查看>>
SQLAlchemy 1.3.1 发布,Python ORM 框架
查看>>
美国科学家训练AI,用路上车辆判断人们的政治立场
查看>>
全球约39亿人未接入互联网 中国互联网用户数达7.21亿
查看>>
美国移动运营商AT&T服务故障,导致大范围用户无法寻求紧急救助服
查看>>
Spring中基于AOP的@AspectJ
查看>>
AI+时尚的盛宴,FashionAI全球挑战赛进入复赛阶段
查看>>
mybatis系统学习(二)——使用基础mybatis代替原始jdbc
查看>>
Linux 网络编程之原始套接字
查看>>