[英]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.我的服务器端是 Laravel。
Even I tried using utf-8
but it didn't work即使我尝试使用utf-8
但它没有用
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");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.