Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:在PUT/POST之后检测BasicHttpResponse的XML或JSON数据类型_Android_Xml_Json - Fatal编程技术网

Android:在PUT/POST之后检测BasicHttpResponse的XML或JSON数据类型

Android:在PUT/POST之后检测BasicHttpResponse的XML或JSON数据类型,android,xml,json,Android,Xml,Json,我需要解析来自http post&puts的服务器响应。我原本以为所有的响应都是XML。现在我发现,对于某些调用,我得到的响应是JSON。我无法控制服务器,因此无法更改此选项 因此,我需要确定检测从服务器返回的数据类型的最佳方法。我的第一个想法是尝试将响应解析为JSON。如果抛出JSONException,则假定它是XML 因为我无法控制服务器,所以我不确定是否可以指望头是正确的 有人对最好的方法有什么想法吗 只需查看html响应中的。如果服务器工作正常,应该会告诉您想要获取的内容类型。正如我在

我需要解析来自http post&puts的服务器响应。我原本以为所有的响应都是XML。现在我发现,对于某些调用,我得到的响应是JSON。我无法控制服务器,因此无法更改此选项

因此,我需要确定检测从服务器返回的数据类型的最佳方法。我的第一个想法是尝试将响应解析为JSON。如果抛出JSONException,则假定它是XML

因为我无法控制服务器,所以我不确定是否可以指望头是正确的


有人对最好的方法有什么想法吗

只需查看html响应中的。如果服务器工作正常,应该会告诉您想要获取的内容类型。

正如我在问题中所说的,我无法控制服务器,无法指望它正确设置和/或传递适当的标题。否则,这将是显而易见的答案

我最初的想法是什么最有效:


“我的第一个想法是尝试将响应解析为JSON。如果抛出了JSONException,则假设它是XML。”

如果您开始使用Android中包含的JSON解析器,那么您将不得不调用EntityUtils#toString(实体)或类似的东西,因此只需将#toString(实体)返回的任何内容删除到新的JSONObject中即可(字符串)并在解析响应失败时尝试XML应该足够了。JSON总是以“{”和XML with”开头,并且可能会有一些空格,这取决于生成输出的服务器的不稳定程度。请注意,是否要发表评论?我缺少什么?我的答案是否有问题?