Сервер возвращает HTML вместо ожидаемого ответа JSON - PullRequest
0 голосов
/ 01 июня 2018

Сервер возвращает HTML-код с JavaScript вместо того, чтобы возвращать прямой ответ JSON моему приложению для Android.Я установил тип содержимого заголовка POST как JSON, следующий код для разбора

public JSONObject getJSONFromUrl(String url,List params ) {

    // Making HTTP request
    try {
        // defaultHttpClient
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);
        httpPost.setEntity(new UrlEncodedFormEntity(params));
        httpPost.setHeader("Content-Type","application/json");

        HttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity httpEntity = httpResponse.getEntity();
        is = httpEntity.getContent();

    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                is, "iso-8859-1"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        json = sb.toString();
        Log.e("JSON", json);
    } catch (Exception e) {
        Log.e("Buffer Error", "Error converting result " + e.toString());
    }

    // try parse the string to a JSON object
    try {
        jObj = new JSONObject(json);
    } catch (JSONException e) {
        Log.e("JSON Parser", "Error parsing data " + e.toString());
    }

    // return JSON String
    return jObj;

}

Но Log.e ("JSON", json) печатает следующее: -

E/JSON: <html><body><script type="text/javascript" src="/aes.js" ></script><script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("61752b71ddbf41dbe3e72a15586b68db");document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; location.href="http://recipebook.epizy.com/RecipeBook/?i=1";</script><noscript>This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support</noscript></body></html>

Так что, очевидно, невозможно преобразовать это в JSONObject.Опция JavaScript в моем браузере по умолчанию включена.Из-за нулевого объекта я также сталкиваюсь с исключениями NullPointerException.Но они, вероятно, исчезнут, как только я получу правильный ответ JSON.Что я здесь не так делаю?

1 Ответ

0 голосов
/ 01 июня 2018

Проверьте ваш URL, это может быть неправильно.Если сервер возвращает истинный HTML, это может быть не ошибка, а просто неправильный вызов.

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