当前位置: 首页 > 面试题库 >

Android JSON至PHP Server并返回

双俊人
2023-03-14
问题内容

有人可以提供上述解决方案吗?

现在,我要做的就是向我的服务器发送JSON请求(例如:{picture:jpg,color:green}),让PHP访问数据库,然后从服务器的数据库返回文件名(然后获取android下载文件-
不是问题)

谁能首先建议一个Android框架来帮助我。-将JSON发布到服务器上的php文件

其次是将JSON转换为php可读格式的php脚本(访问数据库也不是问题,但我无法将JSON转换为对象然后与数据库匹配)

谢谢

编辑

感谢下面的链接,但我并不是出于懒惰而问,我似乎无法发送JSON字符串并获得正确答案,这让我很烦。

因此,让我展示一些代码,找出为什么我认为应该发生的事情没有发生:

GET URL(使用GET,以便我可以显示工作状态)

http://example.com/process/json.php?service=GOOGLE

<?php

// decode JSON string to PHP object
$decoded = json_decode($_GET['json']);

// I'm not sure of which of the below should work but i've tried both.
$myService = $decoded->service; //$service should equal: GOOGLE
$myService = $decoded->{'service'}; //$service should equal: GOOGLE

// but the result is always $myService = null - why?


?>

问题答案:

好的,我有PHP。下面检索POST ed数据并返回服务

<?php

$data = file_get_contents('php://input');
$json = json_decode($data);
$service = $json->{'service'};

print $service;

?>

和Android代码

在onCreate()中

path = "http://example.com/process/json.php";

    HttpClient client = new DefaultHttpClient();
    HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); // Timeout
                                                                            // Limit
    HttpResponse response;
    JSONObject json = new JSONObject();
    try {
        HttpPost post = new HttpPost(path);
        json.put("service", "GOOGLE");
        Log.i("jason Object", json.toString());
        post.setHeader("json", json.toString());
        StringEntity se = new StringEntity(json.toString());
        se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,
                "application/json"));
        post.setEntity(se);
        response = client.execute(post);
        /* Checking response */
        if (response != null) {
            InputStream in = response.getEntity().getContent(); // Get the
                                                                // data in
                                                                    // the
                                                                    // entity
            String a = convertStreamToString(in);
            Log.i("Read from Server", a);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

还有你想去的地方

private static String convertStreamToString(InputStream is) {

    BufferedReader reader = new BufferedReader(new InputStreamReader(is));
    StringBuilder sb = new StringBuilder();

    String line = null;
    try {
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return sb.toString();
}


 类似资料:
  • 我正在尝试将自定义对象上载到Firebase Firestore,但Firestore对象应包含下载图像url。我必须这样做的想法是先上传图像,等待图像完成,获取下载url的引用,更新我的自定义类,然后将其上传到Firestore。然后,当最后一次上传(上传到Firestore)完成时,我想通知我的视图。我想通过返回一个任务来实现这一点。以下是我上传图片的方法: 我不确定如何返回Firstore上

  • 接口说明 登录并返回token 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 POST /authcenter/api/login/v1.0.0/

  • 我使用DynamoDB DocumentClient,使用类AWS删除多个表上的项。发电机B。文档客户端 问题是,当我尝试使用删除多个表时,它运行时没有删除该项目,但没有从AWS返回任何异常。我在想是因为我没有返回promise吗? 另一件事是,在DynamoDB页面上,它提到了写入容量: 一个写入容量单位表示大小不超过1 KB的项目每秒写入一次。如果需要写入大于1KB的项,DynamoDB将需要

  • 我需要从我的FastAPI路径操作返回一个响应,但在此之前,我想发送一个缓慢的请求,我不需要等待该请求的结果,如果有任何错误,只需记录错误。我可以通过Python和FastAPI做到这一点吗?我不想将芹菜添加到项目中。 这是我目前掌握的情况,但它是同步运行的:

  • 问题内容: 我有像 由Web服务器呈现为HTML。我需要将这些字符串转换为 当前,这就是我正在做的事情(借助于jQuery): 但是我有一种不安的感觉,我做错了。我努力了 但它似乎无效,decodeURI / decodeURIComponent也无效。 还有其他更自然,更优雅的方式吗? 问题答案: 用于从JavaScript解释HTML(文本和其他形式)的一个更现代的选项是API中的HTML支持

  • 因此,我在Django中处理model.py,得到2个pylint错误。我不明白为什么?这是pylint的问题还是我在代码中做错了什么。 > 第一个是在第19行,在条目主题=模型中。外键(主题) 第二个在第24行self.text[:50] 如果我删除入口类代码工作