Я не могу получить строковое сообщение от ResponseBody после отправки параметров с модификацией - PullRequest
0 голосов
/ 28 сентября 2018

Hellow.У меня проблема с модернизацией.

отправить параметр с @post:

 @FormUrlEncoded
@POST("sendSms.php")
Call<ResponseBody> sendValidationCode(@Field("phone") String phoneNo);

sendSms.php:

<?php
...
try {


date_default_timezone_set("Asia/Tehran");


$APIKey = "**************";
$SecretKey = "***************";
$LineNumber = "***************";
$text = rand(1000, 9999);
$mobile = $_POST["phone"];

$MobileNumbers = array($mobile);


$Messages = array($text);

@$SendDateTime = date("Y-m-d") . "T" . date("H:i:s");
$SmsIR_SendMessage = new SmsIR_SendMessage($APIKey, $SecretKey, $LineNumber);
$SendMessage = $SmsIR_SendMessage->SendMessage($MobileNumbers, $Messages, $SendDateTime);

echo $SendMessage


} catch (Exeption $e) {
echo 'Error SendMessage : ' . $e->getMessage();
}
?>

код:

 ApiService service = ApiClient.getClient().create(ApiService.class);

                        Call<ResponseBody> call = service.sendValidationCode(edtPhoneNo.getText().toString());

                       call.enqueue(new Callback<ResponseBody>() {
                            @Override
                            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {

                                String message=response.body().toString();//.trim();

                                Toast.makeText(ActivityMain.this, message, Toast.LENGTH_LONG).show();
                            }

                            @Override
                            public void onFailure(Call<ResponseBody> call, Throwable t) {
                                Toast.makeText(ActivityMain.this, t.toString() + "", Toast.LENGTH_SHORT).show();
                            }
                        });

этот код работает нормальнои 4-значный код отправляется на номер телефона., но сообщение «успешно отправлено».не отображается с Toast response.body().toString();

я пробую это:

<?php
    $mobile = $_Post["phone"];
    echo "ok";
?>

, но ok не отображается с Toast response.body().toString(); и отображает okhttp3.ResponseBody$1@e7afd80

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Метод toString() напечатает объект responseBody, а не фактический ответ String, который вы ищете.

Вот почему вы получаете okhttp3.ResponseBody$1@e7afd80 в тосте.

Попробуйтес response.body().string(); вместо response.body().toString()

0 голосов
/ 28 сентября 2018

измените это

String message=response.body().toString();

на

String message=response.toString();

лучший способ - добавить ответ в JSONObject

, используя JSON

    try {
    JSONObject jobj = new JSONObject(response);
Log.d("===","jobj   "+jobj .toString());


    }
     catch (JSONException e1) {
             e1.printStackTrace();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...