客户端发现响应内容类型为"text/html;charset=utf-8",但应为"text/xml"

时间:2022-03-30 08:50:07
是用c#.net2008做的,有那位高手知道是什么原因吗?用什么方法解决?
------------------

15 个解决方案

#1


代码设置下http头试试,将响应类型改成text/xml

#2


客户端发现响应内容类型为"text/html;charset=utf-8",但应为"text/xml"!!!

已经告诉你了


这个方法设置发送到客户端的响应的内容类型,此时响应还没有提交。给出的内容类型可以包括字符编码说明,例如:text/html;charset=UTF-8.如果该方法在getWriter()方法被调用之前调用,那么响应的字符编码将仅从给出的内容类型中设置。该方法如果在getWriter()方法被调用之后或者在被提交之后调用,将不会设置响应的字符编码,在使用http协议的情况中,该方法设置Content-type实体报头。
一般在Servlet中,习惯性的会首先设置请求以及响应的内容类型以及编码方式:
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8"); 

#3


webservice?如果是的话,一般是服务器端出错了.在服务器端记录错误日志、直接以附加进程方式调试服务器代码、通过IE本地测试

#4


帮顶一下

#5


没有遇到过!学习

#6


在程序里面直接改下就成吧?不知道,瞎猜的,主要是我从来没碰到过

#7


web服务是否正常
<webServices>  
                  <protocols>  
                  <add  name="HttpSoap"/>  
                  <add  name="HttpPost"/>  
                  <add  name="HttpGet"/>  
                  <add  name="Documentation"/>  
                  </protocols>  
          </webServices> 
权限配置是否正确如network services
还有检查页面是否有<?xml version="1.0" ?> 

#8


按 “#7楼”的方法设置了还是不行,每次出现这个问题,重新启动服务器后,就可以正常使用了,
还有其它方法吗

#9


将“应用程序池”停止后,在重新启动,然后就不出现这个(客户端发现响应内容类型为"text/html;charset=utf-8",但应为"text/xml")了,有谁知道是什么原因吗?

#10


通常你要为服务程序添加捕获异常的代码(try...catch....),用日志记录出错时客户端向服务器请求的数据,然后分析服务器程序问题。

#11


“原因”其实很简单,你的服务程序抛出异常,结果web服务器下载错误页中定义的内容。而客户端以为获得的信息里边包含正常无异常时的xml序列化内容。

我不知道你的客户端是如何写的,如果是自己写的,那么你的客户端也不完善,它不应该简单地这样抛出提示信息。

#12


有可能是转到4xx/5xx错误页面了,这样客户端读到的数据就是text/html,看起来是返回xml数据错误,其实是iis服务器出现了错误。

#13


iis服务器出现错误,怎么设置IIS呢?

#14


看不到回复啊

#15


看不到回复啊

#1


代码设置下http头试试,将响应类型改成text/xml

#2


客户端发现响应内容类型为"text/html;charset=utf-8",但应为"text/xml"!!!

已经告诉你了


这个方法设置发送到客户端的响应的内容类型,此时响应还没有提交。给出的内容类型可以包括字符编码说明,例如:text/html;charset=UTF-8.如果该方法在getWriter()方法被调用之前调用,那么响应的字符编码将仅从给出的内容类型中设置。该方法如果在getWriter()方法被调用之后或者在被提交之后调用,将不会设置响应的字符编码,在使用http协议的情况中,该方法设置Content-type实体报头。
一般在Servlet中,习惯性的会首先设置请求以及响应的内容类型以及编码方式:
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8"); 

#3


webservice?如果是的话,一般是服务器端出错了.在服务器端记录错误日志、直接以附加进程方式调试服务器代码、通过IE本地测试

#4


帮顶一下

#5


没有遇到过!学习

#6


在程序里面直接改下就成吧?不知道,瞎猜的,主要是我从来没碰到过

#7


web服务是否正常
<webServices>  
                  <protocols>  
                  <add  name="HttpSoap"/>  
                  <add  name="HttpPost"/>  
                  <add  name="HttpGet"/>  
                  <add  name="Documentation"/>  
                  </protocols>  
          </webServices> 
权限配置是否正确如network services
还有检查页面是否有<?xml version="1.0" ?> 

#8


按 “#7楼”的方法设置了还是不行,每次出现这个问题,重新启动服务器后,就可以正常使用了,
还有其它方法吗

#9


将“应用程序池”停止后,在重新启动,然后就不出现这个(客户端发现响应内容类型为"text/html;charset=utf-8",但应为"text/xml")了,有谁知道是什么原因吗?

#10


通常你要为服务程序添加捕获异常的代码(try...catch....),用日志记录出错时客户端向服务器请求的数据,然后分析服务器程序问题。

#11


“原因”其实很简单,你的服务程序抛出异常,结果web服务器下载错误页中定义的内容。而客户端以为获得的信息里边包含正常无异常时的xml序列化内容。

我不知道你的客户端是如何写的,如果是自己写的,那么你的客户端也不完善,它不应该简单地这样抛出提示信息。

#12


有可能是转到4xx/5xx错误页面了,这样客户端读到的数据就是text/html,看起来是返回xml数据错误,其实是iis服务器出现了错误。

#13


iis服务器出现错误,怎么设置IIS呢?

#14


看不到回复啊

#15


看不到回复啊