Java Http POST ajax相当于发送结构化数据JSON

时间:2015-01-22 03:08:06

标签: java php ajax json post

我通常使用$ .ajax将我的应用程序数据发送到我的WebService,如下所示:

$.ajax({
            type: "POST",
            url: server + "/fosco/set", 
            data: {   
                "page":"0",
                "requestType":"DataSet",
                "dataset":createClientJSONObject(),
                "params":"[]"
            },
            headers: {
                    'Content-Type': 'application/x-www-form-urlencoded',
                    'User-Id' : localStorage.getItem("USER_ID")
            },
            success: SuccessSetData

现在,我为我的Java应用程序使用相同的WebService,所以我想知道使用HTTP POST将它作为Java Application发送的等效代码。我开始做类似跟随的事情,但没有工作:

String url = "http://localhost/service/index.php/fosco/set";
        String returnBody = "";
        Gson gson = new Gson();
        Client fc = new Client();
        try {
            HttpRequest httpRequest = new HttpRequest();
            Hashtable<String, String> params = new Hashtable<String, String>();
            params.put("page", "0");
            params.put("requestType", "DataSet");
            params.put("dataset", gson.toJson(new Client()));
            params.put("params", "[]");
            returnBody = httpRequest.post(url,
                    params);

我调试了我的PHP WebService并显示了不同的数据集,它将JAVA Application数据集显示为一个完整的String,但$ .ajax显示为结构化的JSON对象。它并不适用于JAVA Code。

问题: 如何像上面的Java Http POST一样移植$ .ajax POST?

1 个答案:

答案 0 :(得分:0)

这就是我想出来的......

首先, 使用var_dump解决服务器端应用程序时,我看到我的Java应用程序正在发送一个包含整个JSON的字符串,其方式与我的Web应用程序(JavaScript)不同。它必须由库驱动程序处理数据。

我的JAVA应用程序将数据作为单个JSON对象发送为String。

但是,以某种奇怪的方式,我的WebService从我的WebApplication JS接收数据作为结构化的JSON对象。

然后, 我在Web服务端使用了json_decode(String,true)PHP函数将JAVA字符串解码为JSON对象,以便进行识别。