【问题标题】:Ajax post data in android javaandroid java中的Ajax发布数据
【发布时间】:2013-04-25 11:25:07
【问题描述】:

我是 ajax 新手,但对 android 很熟悉。我正在将 ajax 程序转换为 android 应用程序。作为其中的一部分,我需要将数据发布到服务器。下面是 ajax 中给定的 post 命令。

var postTo = 'xyz.php';
 $.post(postTo,{employee_name: $('[name=employee_name]').val() , phone: $('[name=phone]').val(), employee_type: 'guest' } ,
 function(data) {

 if(data.success){
 window.localStorage["sa_id"] = data.mid;
 window.location="getempdb.html";
 }

 if(data.message) {
 $('#output').html(data.message);
 } else {
 $('#output').html('Could not connect');
 }
 },'json');

我想在 android 中实现这一点,但从上面的陈述中很少。任何擅长ajax的人都可以帮我解决这个问题。截至目前,我将用户名和电话号码作为编辑文本输入。我需要使用 http 客户端将此发送到 php。我知道如何使用 php 发送数据,但不知道要发送什么格式以及它是要发送的字符串还是要发送的 json 对象。请帮忙解释上面的代码和义务。

【问题讨论】:

    标签: android ajax json http-post


    【解决方案1】:

    显然,如果您在 android 中使用 HttpClient,这将使用 UrlEncodedFormEntity

    这是通过使用NameValuePair 的列表创建的。

    从参数到$.post:

    {employee_name: $('[name=employee_name]').val() , phone: $('[name=phone]').val(), employee_type: 'guest' }
    

    您必须为employee_name 创建一个NameValuePair,为phone 创建一个...每个都从HTML 元素名称employee_namephone 中获取...这是您放置值的位置你的 EditTexts。

    它返回一个 JSON 格式的字符串,您必须对其进行解析(通常在您从服务器获取结果后使用 JSONObject obj = new JSONObject(result);

    在这个 JSON 对象中,你有一个名为 success 的键,它没有指定格式,除非你可以假设如果它存在的话一切顺利;一个键 mid 和一个键 message

    【讨论】:

    • 感谢精彩的解释。但这是一个httppost,如此有效,我必须创建一个json对象,其中包含employee_name和phone字段作为其键值对,并且需要使用content type = application/json发布它们,我正确吗?
    • 我不认为帖子正文应该是一个 json 对象。我认为它只是一个 UrlEncodedFormEntity,所以你会调用 httppost.setEntity(myUrlEncodedFormEntity);在实体中使用您的名称值对,而不是带有 json 内容的 StringEntity。
    猜你喜欢
    • 2013-10-21
    • 2021-09-17
    • 2014-02-18
    • 2016-07-22
    • 2016-07-30
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多