gpt4 book ai didi

java - Android - 将 XML 架构发布到 PHP 服务器 API

转载 作者:行者123 更新时间:2023-12-01 11:10:49 26 4
gpt4 key购买 nike

我正在尝试将 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();

我的应用程序将挂起,最终它能够完成,但响应将为空。不解析/写入任何内容将允许我读取服务器的响应并且它不会挂起。该 View 采用 XML 格式,这给了我一个 XML 解析错误,并在 CDATA 中出现异常:异常“异常”,并带有消息“字符串无法解析为 XML”。

我有一个 C# 版本的代码,可以肯定地工作,并将我的 Java 代码与 C# 代码进行比较,它看起来非常相似,除了一件事:C# 使用 XmlWriter 为编写器编写内容的 XmlDocument,我不相信 Java 能够做到这一点。如果需要,我可以将 C# 代码粘贴到此处。

有人知道这是怎么回事吗? XML 模式的格式错误,因此服务器不接受它,或者它不接受字符串?或者它可能不等同于 C# 代码?我不知道它不起作用的原因,任何帮助将不胜感激。

最佳答案

“其中 filecontent 是我的字符串格式的 XML 模式” - 意味着您的数据是未压缩的文本,但您在这一行告诉服务器它是用 gzip 编码的 -

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

服务器可能会尝试解压缩您的字符串并最终陷入困惑状态。尝试删除该行。

关于java - Android - 将 XML 架构发布到 PHP 服务器 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32408129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com