我有一个 mysql 数据库和一个表,我将其编码为 json,当我在浏览器中运行 php 文件时,我得到如下内容:
[
{
"product":"\u0645\u0627\u0633\u062a \u067e\u0631 \u0686\u0631\u0628 \u0633\u0648\u0646 \u06a9\u0627\u0644\u0647",
"info":"\u0645\u0627\u0633\u062a \u0633\u0648\u0646 \u06f5 \u062f\u0631\u0635\u062f \u0686\u0631\u0628\u06cc \u06f1\u060c\u06f5 \u06a9\u06cc\u0644\u0648\u06cc\u06cc \u06a9\u0627\u0644\u0647",
"price":"7\u060c800 \u062a\u0648\u0645\u0627\u0646",
"date":null,
"sale":"no sale",
"image":"Image source",
"buy":"Store"
}
]
我认为它没问题,但是当我在我的 Android 代码中得到它时,它就像下面链接的图片:
这是我在android中使用的代码
StringRequest stringRequest = new StringRequest(Request.Method.GET, server_url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONArray array = new JSONArray(response);
for (int i = 0; i < array.length(); i++) {
JSONObject product = array.getJSONObject(i);
productList.add(new Product(
product.getString("product"),
product.getString("info"),
product.getString("price"),
product.getString("date"),
product.getString("sale"),
product.getString("image"),
product.getString("buy")
));
}
ProductAdapter adapter = new ProductAdapter(MainActivity.this, productList);
recyclerView.setAdapter(adapter);
}
catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}
);
Volley.newRequestQueue(this).add(stringRequest);
那我能做什么呢? 感谢您抽出时间。
最佳答案
我认为您需要在 Android 请求中添加 Accept header 。服务器返回 HTML,因为这是默认的内容类型。您应该添加 HTTP header “Accept: application/json”。
关于java - 我有一个 mysql 数据库和一个表,我将它编码为 json,当我在浏览器中运行 php 文件时,当我从 android 获取它时,它会有所不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54389489/