我正在开发一个向服务器发送大量数据的应用程序。现在我想使用volley将一组参数发送到php页面。但是我无法发送它。
用于将参数添加为Array的代码。
String[] arr =new String[7];
for(int i=1;i<=7;i++)
{
arr[i]="questionId_"+i+"_"+"ans_"+i;
}
HashMap<String ,String[]> params=new HashMap<String, String[]>(7);
params.put("params", arr);
向服务器发出请求的代码
RequestQueue que=Volley.newRequestQueue(this);
final ProgressDialog dialog = new ProgressDialog(HealthMyHistory.this);
dialog.setTitle("Please Wait");
dialog.setMessage("Sending Data");
dialog.setCancelable(false);
dialog.show();
CustomJobjectRequest jsObjRequest = new CustomJobjectRequest(Method.POST, url, params, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response)
{
dialog.dismiss();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError response) {
dialog.dismiss();
Toast.makeText(getApplicationContext(), "Unable to Send Data!"+" "+response.toString(), Toast.LENGTH_SHORT).show();
}
});
que.add(jsObjRequest);
}
Problem is in CustomJobjectRequest there is no constructor available of type in which Hashmap accepts string & array as argument.How to do it ?
代码或CustomJsonObjectRequest
package com.example.healthcoach.data;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
import org.json.JSONException;
import org.json.JSONObject;
import com.android.volley.NetworkResponse;
import com.android.volley.ParseError;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.Response.ErrorListener;
import com.android.volley.Response.Listener;
import com.android.volley.toolbox.HttpHeaderParser;
public class CustomJobjectRequest extends Request<JSONObject>{
private Listener<JSONObject> listener;
private Map<String, String> params;
public CustomJobjectRequest(String url, Map<String, String> params,
Listener<JSONObject> reponseListener, ErrorListener errorListener) {
super(Method.POST, url, errorListener);
this.listener = reponseListener;
this.params = params;
}
public CustomJobjectRequest(int method, String url, Map<String, String> params,
Listener<JSONObject> reponseListener, ErrorListener errorListener) {
super(method, url, errorListener);
this.listener = reponseListener;
this.params = params;
}
public CustomJobjectRequest(int post, String url,
HashMap<String, String[]> params2, Listener<JSONObject> listener2,
ErrorListener errorListener) {
// TODO Auto-generated constructor stub
}
@Override
protected Map<String, String> getParams() throws com.android.volley.AuthFailureError {
return params;
};
@Override
protected void deliverResponse(JSONObject response) {
listener.onResponse(response);
}
@Override
protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
try {
String jsonString = new String(response.data,
HttpHeaderParser.parseCharset(response.headers));
return Response.success(new JSONObject(jsonString),
HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
} catch (JSONException je) {
return Response.error(new ParseError(je));
}
}
}
用
HashMap<String ,String> params=new HashMap<String, String>(7);
for(int i=1;i<=7;i++)
{
params.put("params_"+i, arr[i]);
}
在CustomJobjectRequest
类,因为你目前正在使用String
类型为在地图值CustomJobjectRequest
类,但发送String[]
时创建的对象类型CustomJobjectRequest
的类。
编辑:
要将单个参数中的所有值发送到服务器,请使用。JSONObject
使用所有键值创建json对象,如下所示:
JSONObject jsonObject=new JSONObject();
for(int i=1;i<=7;i++)
{
arr[i]="questionId_"+i+"_"+"ans_"+i;
jsonObject.put("params_"+i,arr[i]);
}
HashMap<String ,String> params=new HashMap<String, String>();
params.put("params",jsonObject.toString());
要在服务器端发送所有值,params
并转换为JSON对象并进行迭代以获取所有值
我是Android的新手,现在我在做一个应用,这个应用我需要把数据发送到服务器上,现在我用的是Volley post方法,但是当我用Volley发送数据到服务器上的时候,参数总是显示为空,这里我附上了代码,请检查一下,这里我用的是片段。
我想使用表单urlencoded参数制作POST JSONObjectRequest。我该怎么做?我尝试了以下代码,但无济于事。 我在api调用中收到了一个400错误的请求!我如何修复它?
问题内容: 我是Json解析的新手。我正在尝试使用读取json数据,但是在发送参数和使用POST方法时我有点困惑。在我可以发送方法类型,URL,参数的情况下,但是在如何发送诸如用户名和密码之类的参数时,我使用POST方法。请帮帮我。这是我编写的代码。 我的json数据就像: 参数未发送。请帮我解决这个问题。先感谢您。 问题答案: 当使用JsonArrayRequest和POST方法时,这解决了我传
不管怎么说,所有的想法和答案都是极其赞赏的。谢谢你的帮助。
问题内容: 我正在尝试做一个GET jQuery,我想发送一个参数。 这是我的功能: 这似乎行不通;使用时,我的servlet中没有空; 如果我在浏览器中输入链接http://www.myite.com/manageproducts.do?option=1,则该链接可以正常运行。 我也尝试过: 这也不起作用。 你能帮我么? 编辑: 也尝试过 仍然得到相同的结果。 问题答案: 如果您说它可以直接在浏
问题内容: 我想使用POST方法将JSONObject发送到服务器。我已经使用凌空库通过字符串参数来正常工作,但是如果我尝试使用json对象,则在调用json对象时显示错误,这是我的代码 我的错误表单服务器是: 如何解决这个问题呢。我要添加 标题,请检查我的代码是否正确。请给我一个解决这个问题的建议 问题答案: JsonObjectRequest中的第三个参数用于以jsonobject形式传递发布