![](/img/trans.png)
[英]Android - Send XML file to PHP API server using HttpURLConnection
[英]Android - Post XML schema to PHP server API
我正在嘗試將XML模式解析到我的服務器。
URL obj = new URL(url);
URLConnection uc = obj.openConnection();
HttpURLConnection conn = (HttpURLConnection) uc;
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "text/xml");
conn.setRequestProperty("Content-Length", Integer.toString(filecontent.length()));
conn.setRequestProperty("Content-Encoding", "gzip");
OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
writer.write(filecontent);
writer.close();
其中filecontent是我的XML模式(字符串格式)。 如果我嘗試讀取服務器的響應
BufferedReader in = new BufferedReader(new
InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null ) {
response.append(inputLine);
}
in.close();
我的應用程序將掛起,並且可以正常完成,但響應為空。 不解析/編寫任何內容將允許我讀取服務器的響應,並且不會掛起。 該視圖以XML格式提供,這給了我XML解析錯誤,並在CDATA中出現EXCEPTION:消息“字符串無法解析為XML”的異常“ Exception”。
我有一個肯定能正常工作的C#版本代碼,並將我的Java代碼與C#代碼進行了比較,除了一件事情外,它看起來非常相似:C#用XmlWriter編寫了一個XmlDocument內容供作者使用,我不相信Java有能力做到。 如果需要,我可以在此處粘貼C#代碼。
有人知道怎么了嗎? 它是XML模式的格式錯誤,還是服務器不接受它,或者它不接受字符串? 還是不等同於C#代碼? 我不知道為什么它不起作用,任何幫助將不勝感激。
“其中filecontent是我的XML模式(采用String格式)”-表示您的數據是未壓縮的文本,但是您告訴服務器這行使用gzip
編碼-
conn.setRequestProperty("Content-Encoding", "gzip");
服務器可能會嘗試解壓縮您的字符串並最終陷入混亂狀態。 嘗試刪除該行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.