1

我尝试使用 HttpPut 发送一个 xml,但我总是遇到错误 400,我尝试了几个 REST 客户端的 firefox,我的 URI 和 XML 都可以。

所以我用wireshark检查了数据包,发生了一些奇怪的事情,似乎我有字符'?在 xml 的开头。当然是这个'?不在我的 xml 文件中,我找不到它的来源。当我将 xml 放入代码中的变量中时,一切正常,但如果我从 eclipse 资产目录中的文件中读取 xml,则“?” 出现...

这是我的代码示例,我尝试了所有方法:使用 addHeaders,不添加标题,读取字节而不是行......并且每次都得到错误 400。问题出在代码的那一部分,如果我“手动”添加 xml 文件的第一行(就像我在此处放置的代码中所做的那样)'?出现在第一行之后而不是开头(如果我从文件中读取了所有 xml)

BufferedReader reader = new BufferedReader(new InputStreamReader(c.getAssets().open("data.xml")));   
String line;
String f="<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>";
while((line=reader.readLine()) != null){
    f+=line;    
}
reader.close();
StringEntity se = new StringEntity(new String(f));
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"text/xml;charset=UTF-8"));
            reqPut.setEntity(se);
httpResp =  (BasicHttpResponse) httpCli.execute(reqPut);

因此,如果有人对此有所了解......

4

0 回答 0