Ich habe einen WCF-Service eingerichtet. Leider, wenn ich den Service über Fiddler, das Web oder wo auch immer anrufe, bekomme ich einen http 400 Fehler. Ich bin wirklich verblüfft darüber, wo ich anfangen soll, dieses Problem zu lösen. Irgendwelche Vorschläge werden geschätzt. WSDL ist derzeit keine Option. REST ist eine Voraussetzung. Ich war in der Lage, Anrufe zuvor mit GET zu tätigen, jedoch ist es nicht sicher, da ich die Benutzer-ID und das Passwort zur Validierung übergeben muss und das leicht zu sehen wäre.Get ein http 400 Fehler beim Aufruf eines erholsamen WCF-Service mit http Post
Der Wcf-Dienst hat folgende Schnittstelle:
[WebInvoke(UriTemplate = "/Login", Method="POST",
ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Wrapped)]
[OperationContract]
bool Login(string UserName, string PassWord, string AppKey);
Der Dienst hat den folgenden Code ein. Ja, dieser Code ist unvollständig und ich weiß, dass AppKey wirklich nichts macht, da es als Platzhalter an dieser Stelle steht.
public bool Login(string UserName, string PassWord, string AppKey)
{
bool bl = false;
if (String.IsNullOrEmpty(AppKey))
{
throw (new ApplicationException(AppKeyNull));
}
if (Membership.ValidateUser(UserName, PassWord))
{
bl = true;
}
return (bl);
}
Ich versuche, den Dienst über Fiddler aufrufen. Ich habe die folgende URL:
http://127.0.0.1:82/WebServices/RemoteAPI.svc/Login
Ich habe folgenden Header-Setup:
User-Agent: Fiddler
Host: 127.0.0.1:82
Content-Length: 46
Content-Type: application/x-www-form-urlencoded
Ich habe folgenden Körperaufbau:
UserName=xxxxxx&PassWord=yyyyyy&AppKey=blah
Danke für den Vorschlag. Ich habe die Inhaltslänge von Hand berechnet und kam auch auf 46. Ich hatte Fiedler das selbst berechnen lassen. Leider konnte das Problem dadurch nicht behoben werden. –
Danke David. Ich habe das funktioniert. –