Android - Post XML模式到PHP服务器API

本文关键字:PHP 服务器 API 模式 Post XML Android | 更新日期: 2023-09-27 18:11:29

我试图解析出一个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();

,其中文件内容是字符串格式的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中有一个异常:异常'异常',消息'字符串无法解析为XML'。

我有一个c#版本的代码,工作是肯定的,比较我的Java代码与c#代码,它看起来很相似,除了一件事:c#为内容编写XmlDocument,为编写器编写XmlWriter,我不相信Java能够做到这一点。如果需要的话,我可以把c#代码粘贴到这里。

有人知道怎么回事吗?要么是XML模式的格式错误,服务器不接受,要么是不接受字符串?或者它可能不等同于c#代码?

Android - Post XML模式到PHP服务器API

我也不知道为什么不能用,希望你能帮助我。

"其中文件内容是字符串格式的XML模式" -意味着您的数据是未压缩的文本,但是您告诉服务器它在这一行使用gzip进行编码——

conn.setRequestProperty("Content-Encoding", "gzip");

服务器可能试图解压缩您的字符串并以混乱状态结束。