Frage

Ich entwickle eine Website, die unter anderem Blogging über Metaweblog -API bietet. Ich habe die API mit mehreren Blog -Kunden ziemlich gut zusammenarbeiten, aber Windows Live Writer tötet mich.

Ich habe eine Netzwerkverfolgung durchgeführt, um den tatsächlichen Hin- und Herverkehr zu erfassen. Hier sind die Ergebnisse:

WLW fragt nach meiner Blog -URL, meinem Benutzernamen und meinem Passwort. Die URL ist/item/list/type/blog/user/1/bloguser/1, und ich stelle dies an.

Ich sehe, dass WLW eine HTTP -Anfrage für diese URL erstellt. Es bekommt eine Antwort. Diese Antwort umfasst sowohl RSD- als auch WLWManifest -Link -Tags.

Die nächste Anfrage von WLW ist für/mwapi/rsd/bloguser/1, die richtige URL.

Die Antwort ist die Metaweblog -RSD -Antwort:

<?xml version="1.0" encoding="UTF-8"?>
<rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd">
<service>
<engineName>Cahoots2</engineName>   
<engineLink>http://sourceforge.net/projects/cahoots/</engineLink>  
<homePageLink>http://10.0.1.39:8888</homePageLink>
<apis>
  <api name="MetaWeblog" blogID="1" preferred="true" apiLink="http://10.0.1.39:8888/mwapi/index" />
 </apis>
</service>
</rsd>

Die nächste Anfrage von WLW ist an /mwapi /Index. Dies ist der Methode -Anruf bei Blogger.getUsersblogs. Die Anfrage lautet:

.<?xml version="1.0" encoding="utf-8"?>..
<methodCall>.. <methodName>blogger.getUsersBlogs</methodName>.. 
<params>..  <param>..   <value>..
<string>ffffffabffffffce6dffffff93ffffffac29ffffffc9fffffff826ffffffdeffffffc9ffffffe43c0b763036ffffffa0fffffff3ffffffa963377716</string>..
</value>..
</param>..
<param>..
<value>..
<string>CommunityAdmin</string>..
</value>..
</param>..
<param>..
<value>..
<string>password</string>..
</value>..
</param>.. </params>..</methodCall>

Vergib den Zeitraum; Das sind Wagenrenditen. Ich greife dies aus einer Netzwerkspur.

Die Antwort vom Server ist ebenfalls in XML:

.<?xml version="1.0" encoding="UTF-8"?>.<methodResponse><params><param><value>
<struct><member><name>blogid</name><value><int>1</int>
</value></member><member><name>url</name><value>
<string>http://10.0.1.39:8888/item/list/type/blog/user/1/bloguser/1</string>
</value></member><member><name>blogname</name><value>
<string>CommunityAdmin @ Cahoots!</string></value></member></struct></value>
</param></params></methodResponse>.

Das sieht für mich richtig aus. Die BlogID ist korrekt, die URL ist korrekt und der Blog -Name ist korrekt.

WLW wiederholt dann den ursprünglichen Aufruf von GetUsersblogs -Methoden. Es erhält eine identische Antwort.

WLW zeigt dann: "Es wurde eine erfolgreiche Verbindung zu Ihrem Konto hergestellt. Der Server berichtete jedoch, dass Sie derzeit kein aktives Blog haben. Bitte stellen Sie sicher, dass Ihr Konto bei diesem Anbieter vor dem Fortfahren aktuell ist."

WLW hat keine weiteren HTTP -Anfragen gestellt, die ich hier beschrieben habe.

Irgendwelche Hinweise, was auch immer ich falsch mache? Ich habe sichergestellt, dass eine WLWManifest.xml -Datei verfügbar ist und tatsächlich irgendein Anfrage für wlwManifest.xml (z.

Bearbeiten: Mir wurde klar, dass ich kein Array aus meiner GetUsersblogs -Methode zurückgegeben habe. Als ich das änderte, war die HTTP -Antwort aus dem Methodenaufruf:

.<?xml version="1.0" encoding="UTF-8"?>.<methodResponse><params><param><value><array><data><value>
<struct><member><name>blogid</name><value><int>1</int></value></member>
<member><name>url</name><value>
<string>http://10.0.1.39:8888/item/list/type/blog/user/1/bloguser/1</string>
</value></member><member><name>blogname</name><value>
<string>CommunityAdmin @ Cahoots!</string></value></member></struct></value>
</data></array></value></param></params></methodResponse>.

Dies sieht identisch aus mit dem, was bei beschrieben wird http://msdn.microsoft.com/en-us/library/aa905665.aspx als Beispielantwort. WLW zeigte jedoch einen Fehler an - "Objektreferenz nicht auf eine Instanz eines Objekts festgelegt". Auch hier enthalten die tatsächlichen Antwortdaten die Perioden nicht - genau so repräsentiert der Netzwerkmonitor die Beförderung.

Ich habe Testanrufe aus einem Testkabelbaum durchgeführt und es funktioniert gut mit identischen Antworten. Und wie gesagt, es arbeitet mit anderen Blogging -Kunden zusammen. Hilfe.

War es hilfreich?

Lösung

WLW scheint sehr wählerisch in Bezug auf die MWA -Implementierung. Ich habe nicht korrekt einen der Method -Namen genutzt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top