响应错误 google 映射 api 截击
response error google maps api volley
我创建了一个从 mysql 数据库检索数据的应用程序。问题是地图没有显示任何标记。
我正在使用 volley 库
public class MainActivity extends FragmentActivity {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setUpMapIfNeeded();
String uri = "localhost/get_all_products.php";
RequestQueue mRequestQueue = Volley.newRequestQueue(getApplicationContext());
JsonArrayRequest request = new JsonArrayRequest(
uri,
new Response.Listener<JSONArray>(){
LatLng location;
@Override
public void onResponse(JSONArray response) {
int count = response.length();
for(int i = 0; i < count; i++){
try {
JSONObject jo = response.getJSONObject(i);
Double lat = Double.parseDouble(jo.getString("lat"));
Double lng = Double.parseDouble(jo.getString("lng"));
location = new LatLng(lat,lng);
MarkerOptions options = new MarkerOptions();
options.position(location);
options.title(jo.getString("product"));
options.snippet(jo.getString("product"));
mMap.addMarker(options);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
CameraUpdate cu = CameraUpdateFactory.newLatLng(location);
mMap.moveCamera(cu);
Toast.makeText(getApplicationContext(), response.toString(), Toast.LENGTH_LONG).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "onErrorResponse", Toast.LENGTH_LONG).show();
}
}
);
Object TAG_REQUEST_QUEUE = new Object();
request.setTag(TAG_REQUEST_QUEUE);
mRequestQueue.add(request);
mRequestQueue.start();
}
@Override
protected void onResume() {
super.onResume();
setUpMapIfNeeded();
}
private void setUpMapIfNeeded() {
if (mMap == null) {
mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
.getMap();
if (mMap != null) {
}
}
}
}
地图是没有任何标记的,应用程序没有崩溃。
php 文件是正确的,因此无需将代码放在这里
谢谢你:)
--------编辑
我得到的截击错误是
org.json.JSONException: value <html><body><script of type java.lang.String cannot be converted to JSONArray
问题不在 java 或 php 文件中。
我猜主机 "byethost14.com" 出于安全目的没有提供有效的 json 格式。
我将 url 更改为 10.0.2.2 并在 xamppserver 中上传了我的文件,它正在工作
-------建议------
如果你想输出 json
不要使用 byethost
我创建了一个从 mysql 数据库检索数据的应用程序。问题是地图没有显示任何标记。 我正在使用 volley 库
public class MainActivity extends FragmentActivity {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setUpMapIfNeeded();
String uri = "localhost/get_all_products.php";
RequestQueue mRequestQueue = Volley.newRequestQueue(getApplicationContext());
JsonArrayRequest request = new JsonArrayRequest(
uri,
new Response.Listener<JSONArray>(){
LatLng location;
@Override
public void onResponse(JSONArray response) {
int count = response.length();
for(int i = 0; i < count; i++){
try {
JSONObject jo = response.getJSONObject(i);
Double lat = Double.parseDouble(jo.getString("lat"));
Double lng = Double.parseDouble(jo.getString("lng"));
location = new LatLng(lat,lng);
MarkerOptions options = new MarkerOptions();
options.position(location);
options.title(jo.getString("product"));
options.snippet(jo.getString("product"));
mMap.addMarker(options);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
CameraUpdate cu = CameraUpdateFactory.newLatLng(location);
mMap.moveCamera(cu);
Toast.makeText(getApplicationContext(), response.toString(), Toast.LENGTH_LONG).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "onErrorResponse", Toast.LENGTH_LONG).show();
}
}
);
Object TAG_REQUEST_QUEUE = new Object();
request.setTag(TAG_REQUEST_QUEUE);
mRequestQueue.add(request);
mRequestQueue.start();
}
@Override
protected void onResume() {
super.onResume();
setUpMapIfNeeded();
}
private void setUpMapIfNeeded() {
if (mMap == null) {
mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
.getMap();
if (mMap != null) {
}
}
}
}
地图是没有任何标记的,应用程序没有崩溃。
php 文件是正确的,因此无需将代码放在这里
谢谢你:)
--------编辑
我得到的截击错误是
org.json.JSONException: value <html><body><script of type java.lang.String cannot be converted to JSONArray
问题不在 java 或 php 文件中。
我猜主机 "byethost14.com" 出于安全目的没有提供有效的 json 格式。
我将 url 更改为 10.0.2.2 并在 xamppserver 中上传了我的文件,它正在工作
-------建议------
如果你想输出 json