无法在 Android 中显示来自 Php 文件的结果

Posted

技术标签:

【中文标题】无法在 Android 中显示来自 Php 文件的结果【英文标题】:Cannot show the result from Php file in Android 【发布时间】:2019-11-30 09:43:08 【问题描述】:

我在从 php 文件中获取值并将其显示为 Toast 消息时遇到问题。

我得到的结果值为“null”。

我该如何解决?

这是我的 php 代码。

...
$x = (array('Result' => "Successful"));
echo json_encode($x,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
...

安卓代码

x.enqueue(new Callback<Result>() 
            @Override
            public void onResponse(Call<Result> call, Response<Result> response) 
                if(response.isSuccessful())
                    Result result = response.body();
                    String message = result.getResult();
                    Log.i(LOG,"gonder() | onResponse : " + message);
                    Toast.makeText(getApplicationContext(),
                            message, Toast.LENGTH_SHORT).show();
                

            

            @Override
            public void onFailure(Call<Result> call, Throwable t) 

            
        );

【问题讨论】:

您的回复是否打印出您需要的值? @Lakhwinder Singh 不,它不显示“成功”,它只显示“空”。 我问的是 Retrofit 的日志拦截器,它会根据需要打印您的请求和响应吗?显然在 logcat 中 用一些 REST 工具,比如邮递员,检查服务器是否首先正确响应 @Lakhwinder Singh 改造部分没有问题。我从 json_encode 得到空值 【参考方案1】:

在 php 中使用 json_encode

$x = (array('Result' => "Successful"));
echo json_encode($x,JSON_UNESCAPED_UNICODE);

android 中,在将响应消息显示为 Toast 消息之前,您可以检查是否收到了成功消息。

喜欢。

call.enqueue(new Callback<Result>() 
    @Override            
    public void onResponse(Call<Result> call, Response<Result> response) 
        if(response.body().getResult().equals("Successful"))
          // add your code here to showing messawge as a Toast.
        
        else 
          // display error
        
    
    @Override            
    public void onFailure(Call<Result> call, Throwable t) //display errror message

    
);

【讨论】:

通常情况下,响应消息有一个名为“Successful”的值,但它显示“null”值。 在 php 中,您将获得正确 json 格式的响应。我认为您需要检查android代码。【参考方案2】:

我的回答,

我将变量更改为“结果”而不是定义“结果”,我解决了这个问题。

$x = (array('result' => "Successful"));
echo json_encode($x,JSON_UNESCAPED_UNICODE);

【讨论】:

以上是关于无法在 Android 中显示来自 Php 文件的结果的主要内容,如果未能解决你的问题,请参考以下文章

在基于 Android 和 iOS 的智能手机上显示来自 EMBED HTML 标记的 PDF 文件失败

Android - 如何显示来自可绘制资源的图像?

如何在 HTML 页面中显示来自单独 PHP 文件的结果?

无法在 android 浏览器中使用 php 下载文件

来自 Android 的视频叠加

从 Android Emulator 向 localhost 发送文件 - 来自 localhost / PHP 文件问题的 301 错误响应