java - Http 响应 JSON

标签 java xml json httpresponse

我正在执行以下操作:

HttpGet getMethod = new HttpGet(url);
getMethod.addHeader("Accept","application/x-oslc-cm-change-request+json");
HttpResponse httpResponse = httpClient.execute(getMethod);

其中 URL 指向 XML 文件,即:

<oslc_cm:Collection oslc_cm:totalCount="1">
    <rtc_cm:Project rdf:resource="https://private"/>
</oslc_cm:Collection>

接下来,我执行

InputStream is = httpResponse.getEntity().getContent();
String json = convertStreamToString(is);
JSON jsonObject = JSONSerializer.toJSON(json);

在最后一行,我收到一个异常,JSONException: Invalid JSON String。

是否有什么我没有做或遗漏的事情?

变量json包含http响应,即:

<!DOCTYPE html>

<!--
a comment

-->

<html>

<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=8">
<title></title>

<link type="text/css" rel="stylesheet" href="/jazz/web/_style/?inclu
VelSxGN_en_US&_proxyURL=%2Fjazz">
<link rel="shortcut icon" href="/jazz/web/net.jazz.ajax/jazz.ico">

<style type="text/css">
#net-jazz-ajax-NoScriptMessage {
    width: 100%;
    color: #D0D0D0;
    font-size: 2em;
    text-align: center;
    position: absolute;
    top: 1%;
    z-index: 999;
}
    </style>

</head>

<body class="tundra">
    <noscript><div id="net-jazz-ajax-NoScriptMessage">Javascript is disabled or not available in your Browser</div></noscript>
<div id="net-jazz-ajax-InitialLoadMessage">Loading...</div>
<div id="net-jazz-ajax-WorkbenchRoot"></div>

<script type="text/javascript">
        djConfig = {
                isDebug: false,
                usePlainJson: true,
                baseUrl: "/jazz/web/dojo/",
                locale: "en-us",
                localizationComplete: true
        };
        /*null*/
        net = {jazz: {ajax: {}}};
        net.jazz.ajax._contextRoot = "/jazz";
        net.jazz.ajax._webuiPrefix = "/web/";
</script>

<script type="text/javascript" src="/jazz/web/_js/?include=Z~&eten_US"></script>


<script type="text/javascript">
/* <![CDATA[ */

dojo.getObject('jazz.core.loader', true)._loaded=['Z'];
net.jazz.ajax._rootServices = 'https://private';

net.jazz.ajax._storageService = 'https://private';

net.jazz.ajax._queryService = 'https://private';

net.jazz.ajax._infoCenterRoot = 'https://private';

net.jazz.ajax._oauthRealmName = 'Jazz';

net.jazz.ajax._viewletServiceRoot = 'https://private';

net.jazz.ajax._viewletWebUIRoot = 'https://private';

net.jazz.ajax._hasLocalRepository = true;
net.jazz.ajax._proxyLegacyMode = false;
net.jazz.ajax._oauthDomains = ['https://private']

net.jazz.ajax._friendDomains = ['https://private']


/* ]]> */
</script>

<script type="text/javascript">
/* <![CDATA[ */
        dojo.addOnLoad( function() {
                net.jazz.ajax.ui.PlatformUI.createAndRunWorkbencweb.app.authrequired");
        });
/* ]]> */
</script>
</body>
</html

谢谢

最佳答案

你错过了一些东西。您正在尝试将 XML 解析为 JSON,即使格式完全不同。使用像 SAX 这样的 XML 解析器而不是 JSON 解析器。

关于java - Http 响应 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9104129/

相关文章:

php - 如何为调用创建get方法

android - 如何根据 android 中的可用性更改文本颜色?

java - 如何管理 LocalConverter 以及何时调用 ShutDown() 方法?

Python ElementTree 重复检查器

iphone - iPhone 中的 XML 解析

java - XMLUnit - 比较时忽略 'id' 属性

java - 如何使用 Jackson JSON 将 JSON 字符串转换为 Map<String, Set<String>>

java - 尝试获取数组中的最大值时出错

java - 通过将变量传递给 Math.pow( ) 使用 beanshell 计算 java 中表达式的值

java - 在 Java 方法中更改数组值而不将其传递给方法