为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过 android 中的改造从 php 中检索“字符串响应”?

如何通过 android 中的改造从 php 中检索“字符串响应”?

PHP
白猪掌柜的 2022-05-27 10:30:56
我需要通过 将我的android应用程序中的一些数据插入数据库retrofit,其界面部分如下所示:@FormUrlEncoded    @POST("*****")    Call<model> insertChordReq(@FieldMap Map<String, String> fields);将数据从注释retrofit发送到php文件。代码如下@POST:php<?php$sN = $_REQUEST['sN'];$siN = $_REQUEST['siN'];$soT = $_REQUEST['soT'];try {    $connection = new PDO("mysql:host=******;dbname=*******", "******", "******");    $connection->exec('set names utf8');    $insertQuery = "INSERT INTO table (sN, siN, soT) VALUES ('$sN', '$siN', '$soT')";    if ($connection->exec($insertQuery)){        echo 'درخواست شما با موفقیت ثبت گردید';    }else{        echo 'error';    }} catch (PDOException $e) {    echo $e;}然后我想echo 'درخواست شما با موفقیت ثبت گردید';在我的应用程序中显示字符串响应;但问题是改造不会将其作为响应返回。相反,我通过以下方式收到错误onFailure:java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $不得不提的是,插入数据库的过程已经成功完成,但我需要得到指定的响应。有没有办法通过改造得到字符串?有没有办法把字符串变成json,然后通过改造得到它?我已经在 stackOverFlow 中搜索了现有的问题。不幸的是,我没有找到确切的解决方案。
查看完整描述

2 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

您必须对您的 PHP 文件以及 android 接收器部分进行一些修改,如下所示。echo 只是从 php 文件中输出字符串,但您的改造模块需要一个 json 发射。添加JSON_UNESCAPED_UNICODE以支持非英语支持。您还应该考虑在改造 API 接口中保持相同的 json 格式。在这里我添加了字符串作为相同的响应格式,在你方便的时候改变它....


已编辑


 echo json_encode('درخواست شما با موفقیت ثبت گردید',JSON_UNESCAPED_UNICODE);

在你的安卓代码中


@FormUrlEncoded

    @POST("*****")

    Call<String> insertChordReq(@FieldMap Map<String, String> fields);


查看完整回答
反对 回复 2022-05-27
?
Qyouu

TA贡献1786条经验 获得超11个赞

另外,我发现这个问题可以通过更改call<type>. 使用Void而不是model返回响应(不是失败),这将有助于处理以下UI/UX条件onResponse

@FormUrlEncoded
    @POST("*****")
    Call<Void> insertChordReq(@FieldMap Map<String, String> fields);


查看完整回答
反对 回复 2022-05-27
  • 2 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信