2009-05-14 2 views
1

Ich versuche, eine Anforderung an eine REST-API unter Verwendung von WCF zu senden; hier ist das, was ich getan habe:Was verursacht diese Fehlermeldung? Der Remoteserver hat einen Fehler zurückgegeben: (422) Unprocessable Entity

namespace Sample 
{ 
    [ServiceContract] 
    [XmlSerializerFormat] 
    public interface ISampleApi 
    { 
     [OperationContract] 
     [WebInvoke(Method = "POST", UriTemplate = "users.xml", ResponseFormat = WebMessageFormat.Xml, RequestFormat = WebMessageFormat.Xml)] 
     User CreateUser(User user); 
    } 
} 

Und das ist meine User Klasse:

namespace Sample.Entity 
{ 
    [XmlRoot("user")] 
    public class User 
    { 
     [XmlElement("company")] 
     public string Company { get; set; } 

     [XmlElement("country-code")] 
     public string ContryCode { get; set; } 

     [XmlElement("created-at")] 
     public DateTime CreatedAt { get; set; } 

     [XmlElement("email")] 
     public string Email { get; set; } 

     [XmlElement("external-identifier")] 
     public string ExternalIdentifier { get; set; } 

     [XmlElement("id")] 
     public int Id { get; set; } 

     [XmlElement("measurement-system")] 
     public string MeasurmentSystem { get; set; } 

     [XmlElement("profile")] 
     public string Profile { get; set; } 

     [XmlElement("url")] 
     public string Url { get; set; } 

     [XmlElement("username")] 
     public string Username { get; set; } 

     [XmlElement("account-type")] 
     public string AccountType { get; set; } 
    } 
} 

Aber wenn ich AngelegtVon Methode aufrufen und ein User-Objekt, um es gebe ich diese Fehlermeldung:

Der Remote-Server hat einen Fehler zurückgegeben: (422) Unprocessable Entity.

Irgendeine Idee, was das verursacht?

Antwort

0

, kann diese Fehlerbedingung auftreten, wenn ein XML-Anforderung Körper wohlgeformt enthält (dh syntaktisch korrekt), aber semantisch fehlerhafte XML-Befehle

die users.xml Anweisungen ist
country-code Re-Check-String oder ganzzahliger Wert?

7

Diese Ausnahme bedeutet, dass der Webserver mit einem Fehlercode 422 geantwortet hat. Sie müssen sich mit dem Administrator der Gegenstelle erkundigen, warum dies der Fall sein könnte. (Oder sehen Sie sich den Text der Antwort an, falls eine zurückgegeben wurde, könnte sie einige Hinweise enthalten). Hier

ist die Erklärung von Fehlercode 422: http://tools.ietf.org/html/rfc4918#section-11.2

Die Anforderung zum Server senden, ist höchstwahrscheinlich ungültig in eine oder andere Weise. Was der genaue Fehler sein könnte, ist unmöglich zu sagen, ohne zu wissen, welche Anfrage Sie an welches System senden.