下午,
我有以下代码:
{
"criteriaelement":
[
{
"Value1" : "03",
"FieldName" : "InventLocationId",
"Operator" : 0,
"DataSourceName" : "SalesTable"
}
]
}
public JSONObject crear_json_object(){
JSONObject param= new JSONObject();
JSONArray criteria_e= new JSONArray();
JSONObject param_obj= new JSONObject();
//agregamos los parametros al JSONOBJECT
try{
param_obj.put("Value1","03");
param_obj.put("Operator",0);
param_obj.put("DataSourceName","SalesTable");
param_obj.put("FieldName","InventLocationId");
criteria_e.put(param_obj);
param.put("criteriaelement", criteria_e);
msgResponse.setText(param.toString());
}catch(Exception e){}
return param;
}
private void get_sales_orders() {
//para enviar objetos json en lugar de null se deben enviar...
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.POST,
Const.ws_Salesorders, crear_json_object(),
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d(TAG, response.toString());
msgResponse.setText(response.toString());
//hideProgressDialog();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
//hideProgressDialog();
}
}) {
//@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
headers.put("Authorization", "Bearer "+access_token);
return headers;
}
};
// Adding request to request queue
myapplication.getInstance().addToRequestQueue(jsonObjReq,
"sales");
}
Run Code Online (Sandbox Code Playgroud)
我的jsonobject格式正确(我在google chrome的POST扩展中对此进行了测试),并且当我在此扩展中使用此Web服务时,就可以使用...
但是,将其传递给Volley时,我会收到一个httpstatus代码400,这是一个错误的请求……有人可以帮忙解决这个问题?,我不知道为什么它不起作用,我丢失了什么吗?
我认为这是您需要的:
JSONObject parameters = new JSONObject();
try {
parameters.put("key", "value");
} catch (Exception e) {
}
JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, yourUrl, parameters,new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.i("onResponse", response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("onErrorResponse", error.toString());
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<>();
// Basic Authentication
//String auth = "Basic " + Base64.encodeToString(CONSUMER_KEY_AND_SECRET.getBytes(), Base64.NO_WRAP);
headers.put("Authorization", "Bearer " + accesstoken);
return headers;
}
};
queue.add(request);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5301 次 |
| 最近记录: |