控制台对接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生成代理类方法

												

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

  1. 关于 客户端发现响应内容类型为“text/html; charset=utf-8”,但应为“text/xml”的解决方法

    http://www.cnblogs.com/jams742003/archive/2008/10/30/1322761.html 请求web服务时,会有如题的异常出现,解决方法如下: 1 检查web ...

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

    [错误] 打开eclipse报错:发现了以元素 ‘d:skin’ 开头的无效内容.此处不应含有子元素. [具体报错信息] Error parsing D:\Android-sdks\system-im ...

  3. php调用webservice报错Class 'SoapClient' not found

    原文:php调用webservice报错Class 'SoapClient' not found php在调用webservice时,报告如下类似错误: ( ! ) Fatal error: Clas ...

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

    Console报错: sdk\system-images\android-22\android-wear\armeabi-v7a\devices.xml cvc-complex-type.2.4.d: ...

  5. Bug -- WebService报错(两个类具有相同的 XML 类型名称 "{http://webService.com/}getPriceResponse"。请使用 @XmlType.name 和 @XmlType.namespace 为类分配不同的名称。)

    调用WebService时报错 解决方法: 在提示的两个java文件中加如一行代码namespace = "http://namespace.thats.not.the.same.as.th ...

  6. 使用CXF发布的WebService报错:org.apache.cxf.interceptor.Fault: The given SOAPAction does not match an operation

    场景:JAVA语言使用CXF搭建WebService发布报错 错误信息:org.apache.cxf.interceptor.Fault: The given SOAPAction does not ...

  7. Python使用suds调用webservice报错解决方法:AttributeError: 'Document' object has no attribute 'set'

    使用python的suds包调用webservice服务接口,报错:AttributeError: 'Document' object has no attribute 'set' 调用服务接口代码: ...

  8. Java平台调用.net开发的WebService报错处理

    1.报错:服务器未能识别 HTTP 头 SOAPAction 的值 : 解决办法:.net 开发的WebService文件中(.asmx)增加属性: [SoapDocumentService(Rout ...

  9. Java-Web中访问某个指定工程中的文件,报错后发现访问的文件是另一个工程里面的文件

    问题: 浏览器向我的bingou项目中的UserDaoImpl.java发送请求, myeclipse报错:空指针异常 点击报错行之后,错误给定位到了另一个项目中的的一个文件 解决: 原因是文件名错误 ...

随机推荐

  1. 编写有提示的listbox控件 2008-06-29 17:13

    在MFC中几乎所有的控件都有信息提示,而惟有listbox却没有这样的一个功能,每当我们把鼠标移到listbox上控件时,啥玩意儿都没有是不是很气馁啊,所以我今天特地写了一个简单的有提示的listbo ...

  2. JS 时间获取 (常用)

    /** * 获取几天之前日期 */ daysAgo(dayNum = 0) { let myDate = new Date() let lw = new Date(myDate - 1000 * 60 ...

  3. hook框架-frida使用-APP在模拟器无法打开,用钩子去除限制

    app拿soul为例子 一.环境配置 #模拟器的frida服务为86 #frida-server-12.9.8-android-x86 adb push frida-server-12.9.8-and ...

  4. MySQL数据库修改字段名、字段类型、字段长度

    1.MySQL数据库中,修改字段SQL如下: alter table AppVersion change version versionCode varchar() DEFAULT NULL COMM ...

  5. 初识ABP vNext(7):vue身份认证管理&租户管理

    Tips:本篇已加入系列文章阅读目录,可点击查看更多相关文章. 目录 前言 开始 按钮级权限 身份认证管理 R/U权限 权限刷新 租户管理 租户切换 效果 最后 前言 上一篇介绍了vue+ABP国际化 ...

  6. Linux系统时间同步方法

    在Windwos中,系统时间的设置很简单,界面操作,通俗易懂,而且设置后,重启,关机都没关系.系统时间会自动保存在BIOS时钟里面,启动计算机的时候,系统会自动在BIOS里面取硬件时间,以保证时间的不 ...

  7. mysql8.0的下载、安装、可视化软件(下载、安装、破解)

    获取下面相关资源,请关注微信公众号“带你做毕设或者添加小编微信,有不明白的联系小编,可以提供远程帮助哦 mysql压缩版最新版本下载地址https://dev.mysql.com/downloads/ ...

  8. vue组件获取和vue-cli的基本了解

    Vue获取组件的一些方法 this.$refs.xxx 给标签绑定ref属性,获取的是当前DOM对象 给组件绑定ref属性,获取的是组件实例对象 this.$parent 获取当前组件的父组件,为一个 ...

  9. ssm简单整合

    pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="ht ...

  10. 【NodeJS】-init

    创建NodeJS项目. #新建一个空文件夹 mkdir ReactGame #生成pakeage.json文件(这个文件主要是用来记录这个项目的详细信息的,它会将我们在项目开发中所要用到的包,以及项目 ...