2016-09-12 1 views
0

Ich erhalte diese Fehlermeldung, wenn ich versuche, Daten von einem Webdienst zu empfangen.Der Inhaltstyp application/json; charset = utf-8 der Antwortnachricht stimmt nicht mit dem Inhaltstyp der Bindung überein (text/xml; charset = utf-8)

Hier ist mein Code:

ChannelFactory<IInterface> factory = new ChannelFactory<IInterface>(new BasicHttpBinding(), new EndpointAddress("http://example.net/MyService.svc/Test")); 
var client = factory.CreateChannel(); 

MyObj x = client.Test(); 

Obwohl ich den Fehler, ich kann die Antwort (ein JSON-String) in der Fehlermeldung angezeigt. Ich habe versucht, die Bindung zu WebHttpBinding zu ändern, sowie ein Endpunktverhalten von WebHttpBehavior hinzuzufügen, aber das gibt einfach ein Nullobjekt zurück.

Antwort

0

Ich löste es. Anfangs war ich korrekt bei der Verwendung von WebHttpBinding, aber für das Endpunktverhalten musste ich es leicht modifizieren. Heres der Arbeitscode:

ChannelFactory<IInterface> factory = new ChannelFactory<IInterface>(new WebHttpBinding(), new EndpointAddress("http://example.net/MyService.svc/Test")); 

WebHttpBehavior behavior = new WebHttpBehavior() 
{ 
    DefaultOutgoingResponseFormat = WebMessageFormat.Json, 
    DefaultBodyStyle = WebMessageBodyStyle.Wrapped, 
    HelpEnabled = true, 
    DefaultOutgoingRequestFormat = WebMessageFormat.Json 
}; 

factory.Endpoint.Behaviors.Add(behavior); 

var client = factory.CreateChannel(); 

MyObj x = client.Test(); 
Verwandte Themen