用httpclient发送post请求内容为xml格式的!出现错误!请各位高手看下

用httpclient发送post请求内容为xml格式的

//提交的xml格式字符串
StringBuilder sb = new StringBuilder();
sb.append("<?xml version=\"1.0\" encoding=\"GBK\"?> sb.append("version=\"1.0\"> sb.append("name=\"L810\" id=\"机构\"> sb.append("dispfield=\"机构名称\" where=\"\"> sb.append("relation=\"envelope_intersection\"> sb.append("radius=\"21145.698156464744\"");
sb.append("unit=\"meter\" />");

//返回的xml错误


请各位高手看下!谢谢!

服务器那段要求的编码方式是什么?那么你的xml就定义成需要的编码、、

:lol: 太乱了啊,你打印下你发送的xml
是不是xml格式不正确?

xml冒失没的问题
你的需求是,用httpclient发送xml,到服务端,
是根本还没发送出去就报错了?
还是服务器返回的错误信息?

你服务端能接受到这个xml吗?
然后你方便的话,贴一下你服务端接受xml的代码?

[code="java"]
String sb=xmldata;
StringEntity entity = new StringEntity(sb);
// Set XML entity
post.setEntity(entity);
// Set content type of request header
post.setHeader("Content-Type", "text/xml;charset=ISO-8859-1");
// Execute request and get the response
HttpResponse response = client.execute(post);
[/code]

你发送的时候,是按照以上方式发送的吗?

最好用XML解析器之类的生成xml数据吧,这样手动拼容易出错。用DOM之类的创建,或者有一些框架可以直接从java bean生成xml。

以上真的是你的完整片段吗?没有贴错?没有少帖几行?

这样append,那么元素名字和第一个属性之间是没有空格的。比如,前两行连接,会生成:
[code="xml"]
<?xml version="1.0" encoding="GBK"?><LAYER
[/code]
注意EASYXML和version之间没有空格。显然这不是合法的xml。
在每两个sb.append("...")之间加个sb.append(" ");

但是这样还是乱。不推荐这样做。把整个模板放到文本文件里,关键位置放%s然后用String.format吧。注意转义。

或者,干脆用dom模型构建xml。

encoding 一下