2015-01-22 3 views
1

Я обычно использую $ .ajax направить мои данные приложения к моей WebService, следующим образом:Java Http POST Ajax эквивалент для отправки структурированных данных JSON

$.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 

Теперь, я использую тот же WebService для моего Java Приложение, поэтому я задаюсь вопросом, что эквивалентный код отправляет его как приложение Java, используя HTTP POST. Я начал что-то вроде следующего, но не работаю:

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?

+0

Является ли тип контента автоматически установленным в версии Java? – Musa

+0

@Musa, ну, тип контента и User-Id на заголовках автоматически устанавливаются внутри моего класса HttpRequest. – shabang

ответ

0

И это, как я понял, ...

Во-первых, отладки на стороне сервера приложений с var_dump, я увидел, что мое приложение Java посылает одну строку со всей JSON на него, в каком-то другому к моему веб-приложению (JavaScript). Он должен с помощью драйверов библиотеки определять, как обрабатывать данные.

Приложение My JAVA отправляет данные как один объект JSON как String.

Однако, каким-то странным способом, мой WebService получает данные из моего WebApplication JS как структурированного объекта JSON как есть.

Затем Я использовал функцию PHP json_decode (String, true) на моей веб-службе, чтобы декодировать строку JAVA как объект JSON, чтобы ее можно было распознать.

Смежные вопросы