Webservice报错客户端发现响应内容类型为“application/json;charset=UTF-8”,但应为“text/xml”。

控制台对接Webservice正常,同样的方法在Web项目上报错:

客户端发现响应内容类型为“application/json;charset=UTF-8”,但应为“text/xml”。
请求失败,错误信息为:
--
{
 "code" : "03010250002",
 "msg" : "Illegal json string",
 "data" : ""
}
--.

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidOperationException: 客户端发现响应内容类型为“application/json;charset=UTF-8”,但应为“text/xml”。
请求失败,错误信息为:
--
{
 "code" : "03010250002",
 "msg" : "Illegal json string",
 "data" : ""
}
--.

按照网上的资料找到的方法:

1、重写代理类的请求或响应的方法

在代理类中重写GetWebResponse方法来设置响应的ContentType:

        protected override System.Net.WebResponse GetWebResponse(System.Net.WebRequest request)
        {
            var response = base.GetWebResponse(request);
            if (response.ContentType == "application/json;charset=UTF-8")
                response.ContentType = "text/xml";
            return response;
        }

        protected override System.Net.WebResponse GetWebResponse(System.Net.WebRequest request, IAsyncResult result)
        {
            var response = base.GetWebResponse(request,result);
            if (response.ContentType == "application/json;charset=UTF-8")
                response.ContentType = "text/xml";
            return response;
        }

调试报错:

该类未实现此属性。

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NotImplementedException: 该类未实现此属性。

源错误:

行 39:             var response = base.GetWebResponse(request);
行 40:             if (response.ContentType == "application/json;charset=UTF-8")
行 41:                 response.ContentType = "text/xml";
行 42:             return response;
行 43:         }

重写请求方法GetWebResponse

        protected override System.Net.WebRequest GetWebRequest(Uri uri)
        {
            System.Net.WebRequest request = base.GetWebRequest(uri);
            request.ContentType = "text/xml";
            return request;
        }

结果还是报错:客户端发现响应内容类型为“application/json;charset=UTF-8”,但应为“text/xml”。

后来调试发现是URL写错了,因是用vs的开发命令工具生成的代理类,手动设置的URL,设置错误导致。

SOAPUI生成的代理类也一样要注意URL,URL对了就正常了。

顺便附上用vs的开发命令工具生成代理类的方法,其实就是调用了wsdl.exe 生成代理类

打开vs开发控制台

wsdl /language:c# /n:命名空间 /out:D:/SOAPUI_CS/类名.cs wsdl文件地址

SoapUI生成代理类方法



原文地址:https://www.cnblogs.com/townsend/p/7773807.html

时间: 2024-10-24 09:27:30

Webservice报错客户端发现响应内容类型为“application/json;charset=UTF-8”,但应为“text/xml”。的相关文章

[Android]打开eclipse报错:发现了以元素 'd:skin' 开头的无效内容。此处不应含有子元素。

[错误] 打开eclipse报错:发现了以元素 'd:skin' 开头的无效内容.此处不应含有子元素. [具体报错信息] Error parsing D:\android-sdks\system-images\android-22\android-wear\armeabi-v7a\devices.xml cvc-complex-type.2.4.d: 发现了以元素 'd:skin' 开头的无效内容.此处不应含有子元素. Error: Error parsing D:\android-sdks\s

Webservice报错java.lang.NoSuchMethodError: org.springframework.beans.factory.xml.XmlBeanDefinitionRead

用spring集成发布一个Webservice服务,老是报错: java.lang.NoSuchMethodError: org.springframework.beans.factory.xml.XmlBeanDefinitionReader.setValidationMode(I)V at org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.<init>(XBeanXmlBeanDefinitionReader.j

php调用webservice报错Class &#39;SoapClient&#39; not found

原文:php调用webservice报错Class 'SoapClient' not found php在调用webservice时,报告如下类似错误: ( ! ) Fatal error: Class 'SoapClient' not found in E:/WebSrv/CI/system/libraries/WebService.php on line 17 解决方法: 打开php.ini,找到php_soap.dll , 把前面的分号去掉 ;extension=php_soap.dll

WebService报错: No such operation: (HTTP GET PATH_INFO: /flexcc/flexccService/flexccApp)

WebService报错: No such operation: (HTTP GET PATH_INFO: /flexcc/flexccService/flexccApp) org.apache.cxf.interceptor.Fault: No such operation: (HTTP GET PATH_INFO: /flexcc/flexccService/flexccApp) at org.apache.cxf.interceptor.URIMappingInterceptor.hand

php调用webservice报错Class &#39;SoapClient&#39; not found(转)

php在调用webservice时,报告如下类似错误: ( ! ) Fatal error: Class 'SoapClient' not found in E:/WebSrv/CI/system/libraries/WebService.php on line 17 解决方法: 打开php.ini,找到php_soap.dll , 把前面的分号去掉 ;extension=php_soap.dll 前提是,已经安装了 php_soap.dll php调用webservice报错Class 'So

SpringMVC在使用JSON时报错信息为:Content type &#39;application/json;charset=UTF-8&#39; not supported

直接原因是:我的(maven)项目parent父工程pom.xml缺少必要的三个jar包依赖坐标. 解决方法是:在web子模块的pom.xml里面添加springMVC使用JSON实现AJAX请求. <!--spring mvc-json依赖--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifact

NETCore项目报错 An error occurred while starting the application

在发布到IIS的webApi项目中,运行时报出以上错误, 解决方法: 1.打开发布目录文件夹,找到web.config文件 2.打开web.config找到stdoutLogEnabled="false",把该值改为true,即->stdoutLogEnabled="true" <?xml version="1.0" encoding="utf-8"?> <configuration> <l

cxf客户端调用webservice报错:NoSuchMethod org.apache.commons.xml.XmlSchema.read

cxf客户端项目部署在weblogic中的时候,调用cxf webservice服务端接口时,出现如下错误: 在网上搜索过很多资料,说是jar 包版本过低,将XmlSchema-1.4.5.jar 包换成XmlSchema-2.0.1.jar 之后,还是不行. 原因是:weblogic在服务器上运行时使用的是jrokit的JDK,jrokit中已经有相关的jar包, 会优先加载jrokit/jre/lib目录下的jar包, 解决办法: 在weblogic的使用的JRockit的jre/lib目录

调用WebService报错404问题 (转载)

我想在MVC4的项目添加一个webservice文件,访问没问题,但是最后调用方法就报404错误. 但是如果我全新ASP.NET 空Web应用程序 然后再添加一个webservice文件,就一切OK. 下面说下流程并上图--------------------------------------------------------------先是新建MVC项目 然以选一个空的模板,并且选razor 然后项目就系统自动生成了,然后我再添加一个asmx文件当做webservice 好 直接运行 因为