0

如何添加此 http 标头

contentType: "application/json; charset=utf-8"

到这个 ajax 查询?

 public void asyncJson(){

    //perform a Google search in just a few lines of code

    String url = "http://www.mysite.com/Services/GetJson";

    Map<String, Object> params = new HashMap<String, Object>();
    params.put("nNumResults", "100");                                                  

    aq.ajax(url, params, JSONObject.class, new AjaxCallback<JSONObject>() {

        @Override
        public void callback(String url, JSONObject json, AjaxStatus status) {

            if(json != null){

                //successful ajax call, show status code and json content
                Toast.makeText(aq.getContext(), status.getCode() + ":" + json.toString(), Toast.LENGTH_LONG).show();            
            }else{                    
                //ajax error, show error code
                Toast.makeText(aq.getContext(), "Error:" + status.getCode(), Toast.LENGTH_LONG).show();
            }

        }
    });

 } // asyncJson    
4

1 回答 1

3

我没有大量的 android-query 经验,但这看起来像他们的async API 文档中的这个示例应该可以解决问题;

String url = "http://www.mysite.com/Services/GetJson";

AjaxCallback<JSONObject> cb = new AjaxCallback<JSONObject>();        
cb.url(url).type(JSONObject.class).weakHandler(this, "jsonCb");

cb.header("Content-Type", "application/json; charset=utf-8");
cb.param("nNumResults", "100");

aq.ajax(cb);

请注意,在设置参数时,您还可以使用 Map;

Map<String,String> params = new HashMap<>();
cb.params(params);

使用param方法时要注意陷阱。如果您尚未设置它,它将默认为您提供“Content-Type”标题。

然后,您应该得到对 的回复this.jsonCb(String url, JSONObject jsonObject, AjaxStatus status)

于 2013-12-19T20:33:25.280 回答