web服务返回错误的内容类型响应头(Webservice returns wrong content

2019-09-18 08:38发布

我想在asp.net C#应用程序中使用第三方Web服务(基于PHP),并与服务configuration.Already失败尝试添加服务/ Web引用 - 所有相同的错误:

所述响应消息的内容类型text / html不匹配绑定的内容类型(文字/ XML;字符集= UTF-8)。 如果使用自定义的编码器,确保IsContentTypeSupported方法正确实施。 第一402个字节的响应是:“<?XML版本= “1.0” 编码= “UTF-8”?> <皂:信封的xmlns:SOAP =“http://schemas.xmlsoap.org/soap/envelope/ “的xmlns:的xsi =” http://www.w3.org/2001/XMLSchema-instance”的xmlns:XSD = “http://www.w3.org/2001/XMLSchema”> <皂:车身>; <。 ..

[响应手动编辑以正确显示> <字符,它是完全有效的,否则]

对我来说,这似乎是一个完全有效的反应,我想看看什么小提琴手在响应报头写 - 的Content-Type:text / html的,这可能是问题的根源 - web服务sents错误的内容类型(文本/ HTML代替文/ XML),但如何配置我的客户忽略/覆盖接收的内容类型? 谷歌搜索得到我什么,所以请,如果有人可以帮助 - 在问题是什么? 结合\端点配置是由VS2010使用时添加服务引用选项生成的默认basicHttpBinding的/终点,只看见改变。 提前致谢。

[的app.config]

<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup  name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0,      Culture=neutral, PublicKeyToken=b77a5c561934e089">
  <section name="Collection.ServicePlayground.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</sectionGroup>
</configSections>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="SmsServiceSoap1" closeTimeout="00:01:00" openTimeout="00:01:00"
    receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
    bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
    maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
    useDefaultWebProxy="true">
    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
    maxBytesPerRead="4096" maxNameTableCharCount="16384" />
    <security mode="None">
    transport clientCredentialType="None" proxyCredentialType="None"
    realm="" />
    <message clientCredentialType="UserName" algorithmSuite="Default" />
    </security>
    </binding>
  </basicHttpBinding>
</bindings>
<client>
  <endpoint address="http://ws1.streamsms.ru/SmsService.php" binding="basicHttpBinding"
    bindingConfiguration="SmsServiceSoap1" contract="SmsService.SmsServiceSoap"
    name="SmsServiceSoap2" />
</client>
</system.serviceModel>
<applicationSettings>
<Collection.ServicePlayground.Properties.Settings>
  <setting name="Collection_ServicePlayground_WSStreamProvider_SmsService"   serializeAs="String">
    <value>http://ws1.streamsms.ru/SmsService.php</value>
  </setting>
 </Collection.ServicePlayground.Properties.Settings>
 </applicationSettings>
 </configuration>

Answer 1:

或许矫枉过正,但你可以尝试与绑定自定义的编码器。 默认为text / xml。

http://msdn.microsoft.com/en-us/library/ms751486.aspx



Answer 2:

我不知道,但你认为你正在运行到下面显示的那样: http://cushen.wordpress.com/2009/04/08/web-service-content-type-error-using-visual-studio-2008 /

似乎很相似。您应该使用添加Web引用VS添加服务引用(因为后者是WCF式的服务?)

也许.. :)



文章来源: Webservice returns wrong content-type response header