簡體   English   中英

響應為JSON(Retrofit + Android + PHP Slim Framework)

[英]Response as JSON (Retrofit + Android + PHP Slim Framework)

我正在使用PHP Slim框架為Android應用程序構建REST API。

我在應用程序中發布了正文,它可以很好地工作並將數據添加到MySQL。 但是我在回應時遇到了麻煩。

我的響應JSON模型很簡單;

{success:'yes'}

當我嘗試在添加數據后獲得響應時,Retrofit在onFailure方法中起作用。 但是添加數據效果很好。 我不知道我在哪里錯過。 這是我的代碼;

PHP Slim框架文件

$response->withHeader('Content-Type', 'application/json');
    $response->getBody()->write("{success:'yes'}");
    return $response;

} catch (PDOException $e) {
    echo '{"error": {"text": ' . $e->getMessage() . '}';
}

Android響應模型

public class Response_Success {

@SerializedName("success")
@Expose
String success;

public Response_Success(String success) {
    this.success = success;
}

public String getSuccess() {
    return success;
}

public void setSuccess(String success) {
    this.success = success;
}

接口類別

public interface API_Service {
@Headers("content-type: application/json")
@POST("api/user/add")
Call<Response_Success> addFacebookUser(@Body UserFacebook userFacebook);}

MainActivity中的API調用

API_Service service = Client.getRetrofitInstance().create(API_Service.class);

        Call<Response_Success> userFacebookCall = service.addFacebookUser(userNew);

        userFacebookCall.enqueue(new Callback<Response_Success>() {
            @Override
            public void onResponse(Call<Response_Success> call, Response<Response_Success> response) {
                Toast.makeText(MainActivity.this, ""+response.body().getSuccess(), Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onFailure(Call<Response_Success> call, Throwable t) {
                Toast.makeText(MainActivity.this, "was wrong", Toast.LENGTH_SHORT).show();
            }
        });

android studio中的調試模式; 我得到了MaltFormedJsonException,但是我在try catch中添加了該異常。

您的Json回應

{成功:'是'}

是無效的。 鍵和(字符串)值必須用雙引號引起來。

請確保您的回復用雙引號引起來:

{“成功”:“是”}

或嘗試以下方法:

$response = array();
$response["success"] = "yes";
echo json_encode($response);

注意:您可以在以下網址查看任何JSON字符串是否有效: https : //jsonlint.com/https://jsonformatter.curiousconcept.com/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM