2015-02-15 1 views
-2

Привет, я пытаюсь отправить данные из моего приложения titanium на веб-службу Apache. Фрагмент титанового кода работает, так как выход на консоль является успешным. Теперь то, что я пытаюсь сделать, - это когда сообщение отправлено, отображает содержимое сообщения на странице веб-службы. Правильно ли мой doPost?My Titanium Post Works, как мне отображать в Java Servlet?

Titanium Отрывок

button.addEventListener('click', function(e) { 

var params = { 
    "places" : { 
     Country : textCountry.getValue(), 
     Capital : textCapital.getValue() 
    } 
}; 

var xhr = Ti.Network.createHTTPClient({}); 

// function to deal with errors 
xhr.onerror = function() { 
    Ti.API.info('error, HTTP status = ' + this.status); 
    alert('Error Sending Data'); 
}; 

// function to deal with response 
xhr.onload = function() { 
    console.log('success, HTTP status = ' + this.status); 
}; 

xhr.open("POST", 'http://130.206.127.43:8080/Test'); 

//set enconding 
xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8"); 

xhr.send(JSON.stringify(params)); 

}); 

Java Servlet/Apache Tomcat Отрывок

public void doPost(HttpServletRequest request, 
       HttpServletResponse response) 
     throws ServletException, IOException 
{ 

    String jsonData = request.getParameter("json"); 
    response.setContentType("applicaiton/json"); 
    PrintWriter out= response.getWriter(); 
    out.println(jsonData); 
    out.close(); 
} 

18/02/205

// function to deal with response 
xhr.onload = function() { 
    console.log('success, HTTP status = ' + this.status); 
    Ti.API.info('json' + this.responseText); 
}; 

[INFO] : success, HTTP status = 200 
[INFO] : json = null 
+0

Ваш Java-код даже не компилируется, getPsrameter – bhspencer

+0

Также ни в одной точке в коде JS вы установить параметр по запросу называется «JSON» – bhspencer

+0

getPsrameter была ошибка типа (под редакцией) , и вот что я пытаюсь получить с помощью –

ответ

0

Установите точку останова в xhr.onload и посмотрите на переменные, которые присутствуют перед записью вашего журнала.

Вы ищете this.responseText, который будет иметь ответ от вашего вызова сервлете Java. В основном я использую WCF и C#, и если я специально не настроил службу WCF для очистки вывода, он добавит имя функции в ответ.

Как правило, мой onload выглядит так.

xhr.onload = function(){  
    var result = JSON.parse(this.responseText); 
    Ti.API.log(result); 
} 

* Посмотрите ближе к вашему Java Servlet типа возвращаемого значения. Это тип возврата VOID, поэтому никакие данные не будут возвращены в HTTP-вызов. *

http://docs.appcelerator.com/titanium/3.0/#!/api/Titanium.Network.HTTPClient

+0

спасибо за ваш положительный ответ, я отредактировал мой вопрос выше, я получаю null для xhr.send() im не слишком уверен, почему –

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