我通常使用$ .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?
答案 0 :(得分:0)
这就是我想出来的......
首先, 使用var_dump解决服务器端应用程序时,我看到我的Java应用程序正在发送一个包含整个JSON的字符串,其方式与我的Web应用程序(JavaScript)不同。它必须由库驱动程序处理数据。
我的JAVA应用程序将数据作为单个JSON对象发送为String。
但是,以某种奇怪的方式,我的WebService从我的WebApplication JS接收数据作为结构化的JSON对象。
然后, 我在Web服务端使用了json_decode(String,true)PHP函数将JAVA字符串解码为JSON对象,以便进行识别。