自己写了个WCF,然后使用Andorid APP 调用WCF获取数据。但是报XmlPullParserException unexpected type (position:END_DOCUMENT null@1:1 in java.io.InputStreamReader异常。
原因出在自己配置WCF的时候使用了自定义绑定,而没有使用basicHttpBinding绑定。
开始的配置如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<services>
<service name="GuiyinCangchu.QRManager.QRWCF.QRService" behaviorConfiguration="WcfServiceBehavior">
<!--<endpoint address="" binding="basicHttpBinding" contract="demo.IQRService"></endpoint>-->
<endpoint address="" binding="customBinding" bindingConfiguration="MyBinding" contract="demo.IQRService"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="WcfServiceBehavior">
<!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false 并删除上面的元数据终结点 -->
<serviceMetadata httpGetEnabled="true"/>
<!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 -->
<serviceDebug includeExceptionDetailInFaults="false"/>
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<customBinding>
<binding name="MyBinding">
<binaryMessageEncoding></binaryMessageEncoding>
<httpTransport></httpTransport>
</binding>
</customBinding>
</bindings>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
后面改成是basicHttpBinding就没有问题了
<service name="GuiyinCangchu.QRManager.QRWCF.QRService" behaviorConfiguration="WcfServiceBehavior">
<endpoint address="" binding="basicHttpBinding" contract="GuiyinCangchu.QRManager.QRWCF.IQRService"></endpoint>
<!--<endpoint address="" binding="customBinding" bindingConfiguration="MyBinding" contract="GuiyinCangchu.QRManager.QRWCF.IQRService"/>-->
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>