简体   繁体   中英

How to fix "Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject" error in Android?

I try to send token to server side in my application in header. but when I try to send token I get this error

org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject

my server side is laravel.

Even I tried using utf-8 but it didn't work

con.addRequestProperty("Authorization", "Bearer " + token+"; charset=utf-8" );

this is my code when I connect to server

@Override
protected Object doInBackground(Object[] objects) {

    try {
        URL url = new URL(objects[URL_ADDRESS].toString());
        HttpURLConnection con = (HttpURLConnection) url.openConnection();
        con.setRequestMethod(objects[CONNECTION_METHOD].toString());

        if (token != null) {
            con.addRequestProperty("Authorization", "Bearer " + token+"; charset=utf-8" );
        }

        if (objects[CONNECTION_METHOD].toString().equals("POST")) {
            con.addRequestProperty("Content-Type", "application/json; charset=utf-8");
            con.setDoInput(true);
            con.setDoOutput(true);
            OutputStream out = con.getOutputStream();
            out.write(objects[OUTPUT_OBJECT].toString().getBytes("UTF-8"));
        }

        String str;
        if (con.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
            str = getRespons(con.getInputStream()) /*+ jsRespons*/;
        } else {
            str = getRespons(con.getErrorStream()) /*+ jsRespons*/;
        }

        ///

        Map<String, List<String>> headerFields = con.getHeaderFields();

        Set<String> headerFieldsSet = headerFields.keySet();
        Iterator<String> hearerFieldsIter = headerFieldsSet.iterator();

        while (hearerFieldsIter.hasNext()) {

        String headerFieldKey = hearerFieldsIter.next();
        List<String> headerFieldValue = headerFields.get(headerFieldKey);

        StringBuilder sb = new StringBuilder();
        for (String value : headerFieldValue) {
            sb.append(value);
            sb.append("");
        }
            System.out.println(headerFieldKey + "=" + sb.toString() );
        }

        ///

        JSONObject jsResponse = new JSONObject(str);
        jsResponse.put("resMsg", con.getResponseMessage());
        jsResponse.put("response", con.getResponseCode());

        return jsResponse.toString();

    } catch (Exception e) {
        return e.toString();
    }

}

thanks.

根据Laravel 文档Accept: application/json标头添加到您的请求中。

con.addRequestProperty("Accept", "application/json");

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM