【发布时间】:2018-08-29 00:39:43
【问题描述】:
我想使用带有单个参数的 Volley 发送 JSONObject POST 请求。我编写并包含在下面的代码似乎在 onResponse 方法中没有收到任何响应。我看不出是什么问题导致了这种情况。
我已经在服务器端进行了检查,并且它正在正常工作,PHP 代码回显了 JSON 编码的数据数组。
public void mySightingsJsonRequest() {
//get username held in shared preferences (KMcE)
HashMap<String, String> user = newSession.getUsername();
final String username = user.get(SessionUtility.KEY_USERNAME);
JSONObject obj = new JSONObject();
try {
obj.put("Username", username);
} catch (JSONException e) {
e.printStackTrace();
}
JsonObjectRequest mySightingsRequest = new JsonObjectRequest(Request.Method.POST, ConnectionURLs.MY_SIGHTINGS, obj, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d(TAG, "onResponse: MySightings response");
try {
JSONArray jsonArray = response.getJSONArray("server_response");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject sighting = jsonArray.getJSONObject(i);
int sightingRecordingNumber = sighting.getInt("Recording Number");
String sightingImgURL = sighting.getString("IMG");
String sightingCommonName = sighting.getString("Common Name");
String sightingUsername = sighting.getString("Submitted by");
double sightingLongitude = sighting.getDouble("Longitude");
double sightingLatitude = sighting.getDouble("Latitude");
mSightingList.add(new SightingSingle(sightingRecordingNumber, sightingImgURL, sightingCommonName, sightingUsername, sightingLatitude, sightingLongitude));
}
mMySightingsAdapter = new MySightingsAdapter(getActivity(), mSightingList);
mMySightingRecyclerView.setAdapter(mMySightingsAdapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
mRequestQueue.add(mySightingsRequest);
}
【问题讨论】:
-
使用
Log.d(TAG, "onResponse: MySightings response "+ response.toString());查看响应值
标签: java android android-volley