我使用jQuery mobile & Phonegap(現在爲Cordova)開發了iPhone/Android應用程序。這個應用程序使用不同的服務沒有問題。其中一個服務是Soap,所以我使用jsSOAPClient(jquery.jqSOAPClient.js)用於jQuery以請求服務。我從iOS設備上完全沒有問題,但在Android上查詢總是失敗。使用jQuery/Phonegap的肥皂查詢在Android上始終失敗
在jsSOAPClient請求看起來像這樣:
function getResponse(xData, status) {
if(!!callback) {
SOAPClient.Status = xData.status;
SOAPClient.ResponseText = xData.responseText;
SOAPClient.ResponseXML = xData.responseXML;
callback(xData.responseXML);
}
}
$.ajax({
type: "POST",
url: SOAPClient.Proxy,
dataType: "xml",
processData: false,
data: content,
complete: getResponse,
beforeSend: function(req) {
req.setRequestHeader("Method", "POST");
req.setRequestHeader("Content-Length", SOAPClient.ContentLength);
req.setRequestHeader("Content-Type", SOAPClient.ContentType + "; charset=\"" + SOAPClient.CharSet + "\"");
req.setRequestHeader("SOAPServer", SOAPClient.SOAPServer);
req.setRequestHeader("SOAPAction", soapReq.Action);
}
});
的 「GetResponse的」, 「狀態」 的值是 「錯誤」 和 「SOAPClient.Status」(等於 「xData.status」)的值是「 0" 。
服務器似乎沒有收到要求在所有...
我再說一遍,用相同的請求DATAS相同的代碼對iOS的結果。
感謝您的幫助。
/編輯 */ 我試圖評論的行:
//type: "POST",
似乎工作,我的意思是我有一個200個狀態碼在這種情況下,即使我有一個由於意外的響應格式而解析錯誤。
我有同樣的問題,因此,我提供的賞金。我有一些額外的信息。我讓網絡管理員使用wireshark觀看手機和服務器之間的數據包。以下是他觀察到的結果: – 2012-06-19 21:27:49
「TLSv1似乎正在中止服務器確認的加密警報。有FIN包,然後是復位(RST)。這看起來像是在客戶端尾部發生故障的握手談判進程結束。「我看了一條消息,看到:「TLSv1記錄層:加密警報;內容類型:警報(21);版本TLS 1.0(0x0301);長度24;警報消息:加密警報」。就像OP一樣,我只在Android上遇到問題。 – 2012-06-19 21:35:10
這裏有兩個鏈接的人看到我們在wireshark中的同一件事:http://code.google.com/p/android/issues/detail?id = 8334和http://groups.google.com/group/android -security-discuss/tree/browse_frm/month/2010-05?_done =%2Fgroup%2Fandroid-security-discuss%2Fbrowse_frm%2Fmonth%2F2010-05%3F& – 2012-06-19 22:32:43