【问题标题】:Java Http POST ajax equivalent for sending structured data JSON用于发送结构化数据 JSON 的 Java Http POST ajax 等效项
【发布时间】:2015-01-22 03:08:05
【问题描述】:

我通常使用 $.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 应用程序发送的等效代码。我开始了类似以下的操作,但不起作用:

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 应用程序数据集显示为一个完整的字符串,但将 $.ajax 显示为结构化的 JSON 对象。而且它不适用于 JAVA 代码。

问题: 如何将像我上面的 $.ajax POST 移植为 Java Http POST?

【问题讨论】:

  • Java版本中是否自动设置内容类型?
  • @Musa,嗯,标题上的内容类型和用户 ID 是在我的 HttpRequest 类中自动设置的。

标签: java php ajax json post


【解决方案1】:

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

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

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

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

那么, 我在我的 Web 服务端使用 json_decode(String ,true) PHP 函数将 JAVA 字符串解码为 JSON 对象,以便按应有的方式识别。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    相关资源
    最近更新 更多