Как я могу вернуться с типом контента в laravel? - PullRequest
0 голосов
/ 07 октября 2019

Я пытаюсь использовать приложение Laravel в качестве проекта Android Studio.

Я пытаюсь отправить httpsrequest из Java, как мне вернуть ответ?

Как мы используем вPHP возвращает ответ в виде JSON как header('Content-Type: application/json'); в заголовочном файле .php и сообщение как:

$response["message"] = "Signin succsessfully done."; echo json_encode($response);

, поэтому в laravel я пытаюсь вернуть ответ как:

return response()->json(['success'=>1]) ->header('Content-Type', 'application/json');

но он не работает

в моем файле Java JSONObject json = jsonParser.makeHttpRequest(url, "POST", params);

Так как мне это сделать?

edit: это то, как я звоню из .java

  JSONObject json = jsonParser.makeHttpRequest(url, "POST", params);

        // Check your log cat for JSON reponse

        try {
            // Checking for SUCCESS TAG
            success = json.getInt(TAG_SUCCESS);`
 } catch (JSONException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("Rjn_login_error"+e.getMessage());
        }






/**
         * After completing background task Dismiss the progress dialog
         * **/
    protected void onPostExecute(String file_url) {
        // dismiss the dialog after getting all products
        pDialog.dismiss();

        // updating UI from Background Thread
        runOnUiThread(new Runnable() {
            public void run() {
                /*
                  Updating parsed JSON data into ListView
                 */
                if (success == 1) {
                    // jsonarray found
}}}

Так, когда я использую вызов URL как http://website.com/test.php и в test.php `

    $response["success"] = 1;
        $response["message"] = "Signin succsessfully done.";

        // echoing JSON response
        echo json_encode($response);

и его работоспособностьидеально

Но когда я попытался return response json с контроллера Laravel, он не работал ..

Ответы [ 2 ]

2 голосов
/ 07 октября 2019

Передача заголовков в качестве третьего параметра для помощника ответа

return response([
    'status' => 'success'
], 200, ['Content-Type => application/json']);

Результаты

enter image description here

Вы также можете указать ответбыть JSON, как и так

return response()->json([
    'status' => 'success'
], 200);

Надеюсь, это поможет

0 голосов
/ 07 октября 2019

Когда вы используете return response()->json(['success'=>1]);, вам не нужно устанавливать тип контента на 'application/json'. Метод json() сделает это автоматически.

Если вы все еще не получаете правильный заголовок ответа, это может быть связано с одним из ваших пользовательских / модифицированных промежуточных программ, который устанавливает заголовок 'Content-Type'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...