Android 中传递 json 的问题
原问题来自于CSDN问答频道,更多解决方案见:http://ask.csdn.net/questions/2520
问题描述:
我在开发一个程序,在 webpage 上使用jquery。
根据参数结构,Paramstring 是一个 json字符串,如:{"action":"get","username":"username"}
现在我想在android中运行,再在页面上添加两个textview 来输入用户名和密码。也有一个注册按钮。按钮监听程序:
上面的代码返回数据显示登录错误,我觉得是因为 json 结构的问题。{param:paramstr} in $.post()方法是一个map。我改了好几次还是错误的。
什么问题呢?
解决方案:
你应该分别传递每个参数,不需要一个 json 结构。 jQuery 使用的 JSON 结构只是 $.post() 方法中一个可变数目的参数。
把你代码中的这部分:
改为:
用sendData list 取代 JSON 对象。
问题描述:
我在开发一个程序,在 webpage 上使用jquery。
$.post(url, {param: paramstring}, function(result){});根据参数结构,Paramstring 是一个 json字符串,如:{"action":"get","username":"username"}
现在我想在android中运行,再在页面上添加两个textview 来输入用户名和密码。也有一个注册按钮。按钮监听程序:
EditText et1 = (EditText)findViewById(R.id.username);
String user = et1.getText().toString();
EditText et2 = (EditText)findViewById(R.id.pass);
String password = et2.getText().toString();
// the password should upload after MD5 encryption. this is encryption method. the result is the same with js encryption.
String password_md5 = toMd5(password.getBytes());
Log.d(TAG, user+"-"+password+"-"+password_md5);
try {
HttpPost request = new HttpPost(URL);
JSONObject params = new JSONObject();
params.put("action", "get");
params.put("result", "user");
params.put("category", "base");
params.put("username", user);
params.put("password", password_md5);
List<BasicNameValuePair> sendData = new ArrayList<BasicNameValuePair>();
sendData.add(new BasicNameValuePair("param", params.toString()));
System.out.println(params.toString());
request.setEntity(new UrlEncodedFormEntity(sendData,"utf-8"));
System.out.println(EntityUtils.toString(request.getEntity()));
HttpResponse response= new DefaultHttpClient().execute(request);
String retSrc = EntityUtils.toString(response.getEntity());
System.out.println(retSrc);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} 上面的代码返回数据显示登录错误,我觉得是因为 json 结构的问题。{param:paramstr} in $.post()方法是一个map。我改了好几次还是错误的。
什么问题呢?
解决方案:
你应该分别传递每个参数,不需要一个 json 结构。 jQuery 使用的 JSON 结构只是 $.post() 方法中一个可变数目的参数。
把你代码中的这部分:
params.put("action", "get");
params.put("result", "user");
params.put("category", "base");
params.put("username", user);
params.put("password", password_md5);
List<BasicNameValuePair> sendData = new ArrayList<BasicNameValuePair>();
sendData.add(new BasicNameValuePair("param", params.toString()));改为:
List<BasicNameValuePair> sendData = new ArrayList<BasicNameValuePair>();
sendData.add(new BasicNameValuePair("action", "get"));
sendData.add(new BasicNameValuePair("result", "user"));
sendData.add(new BasicNameValuePair("category", "base"));
sendData.add(new BasicNameValuePair("username", user));
sendData.add(new BasicNameValuePair("password", password_md5));用sendData list 取代 JSON 对象。
...全文
相关推荐
火山安卓JSON数据解析.rar
在Android开发中,JSON(JavaScript Object Notation)是一种常用的数据交换格式,被广泛应用于服务器与客户端之间传递数据。"
安卓Android源码——激光推送客户端demo.zip
**示例用例**:可能有一些测试用例或者预定义的场景,展示如何使用激光推送服务进行消息传递。6. **README文件**:通常会包含项目简介、安装指南、使用说明和可能的问题解答。
安卓Android源码——Cnblogs博客园安卓客户端.zip
Android中的Intent是组件间通信的主要方式,通过查看源码可以学习如何使用Intent传递数据和启动服务。9. **性能优化**:Cnblogs客户端作为一款应用,性能优化是必须考虑的问题。
黑马程序员安卓 笔记代码(包含源码) 第76期
这表明这份资料可能聚焦于安卓开发的基础核心概念,如Android系统架构、Activity生命周期、Intent传递、数据存储、UI设计、多线程处理、网络编程等。
mars老师安卓代码
这样的代码通常会涵盖Android SDK中的关键概念和技术,如Activity生命周期、Intent传递、布局设计、数据存储、网络请求、多媒体处理、权限管理等。


