gpt4 book ai didi

android - 在 Volley 中使用 JsonArrayRequest 时如何发布请求参数

转载 作者:太空宇宙 更新时间:2023-11-03 12:50:15 24 4
gpt4 key购买 nike

我是 Json 解析的新手。我正在尝试使用 JsonArrayRequest 读取 json 数据,但我对发送参数和使用 POST 方法有点困惑。在 JsonObjectRequest 的情况下,我可以发送方法类型、url、 params 但在 JsonArrayRequest 中如何发送用户名和密码等参数并使用 POST 方法。请帮助我。这是我编写的代码。

final JsonArrayRequest jsonObjReq = new JsonArrayRequest(MySingleton.getInstance().getDOWNLOAD_SERVICES_URL(), new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
try {
if(response==null) {
pDialog.hide();
}
for (int i = 0; i < response.length(); i++) {
jresponse = response.getJSONObject(i);
}
//String service_response = response.getString("SvcTypeDsc");
Toast.makeText(getActivity().getApplicationContext(), "services" + jresponse, Toast.LENGTH_SHORT).show();
} catch (JSONException e) {
e.printStackTrace();
Log.d("soservices", "sos" + e.getMessage());
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("Login request", "Error: " + error.getMessage());
Log.d("Volley Error:", "Volley Error:" + error.getMessage());
Toast.makeText(getActivity(), "Unable to connect to server, try again later", Toast.LENGTH_LONG).show();
pDialog.hide();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("uniquesessiontokenid","39676161-b890-4d10-8c96-7aa3d9724119");
params.put("loginname", userDet.getSAID());
params.put("password", "23295");
return super.getParams();
}

@Override
public int getMethod() {
try {
getParams();
} catch (AuthFailureError authFailureError) {
authFailureError.printStackTrace();
}
return super.getMethod();
}
};

AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);

}

我的 json 数据是这样的:

{
"username":"rushi",
"firstname": "abc",
},
{
"username": "xyz",
"firstname": "vxa",
},

参数没有被发送。请帮我解决这个问题。提前谢谢你。

最佳答案

这解决了我在使用 JsonArrayRequest 和 POST 方法时传递参数的问题。

Volley.newRequestQueue(getActivity())
.add(new JsonRequest<JSONArray>(Request.Method.POST,
MySingleton.getInstance().getDOWNLOAD_SERVICES_URL(),
jsonobj.toString(),
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray jsonArray) {
Log.d("response", "res-rec is" + jsonArray);
if (jsonArray == null) {
pDialog.dismiss();
Snackbar.make(myview, "No services found", Snackbar.LENGTH_LONG).show();

} else {


for (int i = 0; i < jsonArray.length(); i++) {
try {

pDialog.dismiss();
JSONObject jsonObject = jsonArray.getJSONObject(i);
String desc = jsonObject.getString("SvcTypeDsc");
String image_url = jsonObject.getString("ThumbnailUrl");
// al_ImageUrls.add(image_url);

al_list_of_services.add(desc);
ad_servicesadapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, al_list_of_services);

lv_webservicesList.setAdapter(ad_servicesadapter);

Log.d("imageurls", "imagesurl " + image_url);
Log.d("services-list", "list is " + desc + " " + i);
} catch (JSONException e) {
e.printStackTrace();
}

}
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
VolleyLog.d("Login request", "Error: " + volleyError.getMessage());
Log.d("Volley Error:", "Volley Error:" + volleyError.getMessage());
Toast.makeText(getActivity(), "Unable to connect to server, try again later", Toast.LENGTH_LONG).show();
pDialog.dismiss();
}
})

{
@Override
protected Map<String, String> getParams() throws AuthFailureError {


Map<String, String> params = new HashMap<String, String>();
// params.put("uniquesessiontokenid", "39676161-b890-4d10-8c96-7aa3d9724119");
params.put("uniquesessiontokenid", userDet.getSessionToken());
params.put("said", userDet.getSAID());
params.put("SOId", "23295");

return super.getParams();
}

@Override
protected Response<JSONArray> parseNetworkResponse(NetworkResponse networkResponse) {


try {
String jsonString = new String(networkResponse.data,
HttpHeaderParser
.parseCharset(networkResponse.headers));
return Response.success(new JSONArray(jsonString),
HttpHeaderParser
.parseCacheHeaders(networkResponse));
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
} catch (JSONException je) {
return Response.error(new ParseError(je));
}

// return null;
}
}
);

关于android - 在 Volley 中使用 JsonArrayRequest 时如何发布请求参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33014210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com